22 using namespace Marble;
25 QList<WikipediaItem *> *list,
27 : m_marbleWidget( widget ),
40 if ( isStartElement() ) {
41 if ( name() ==
"geonames" )
44 raiseError( QObject::tr(
"The file is not a valid Geonames answer.") );
51 void GeonamesParser::readUnknownElement()
53 Q_ASSERT( isStartElement() );
61 if ( isStartElement() )
66 void GeonamesParser::readGeonames()
68 Q_ASSERT( isStartElement()
69 && name() ==
"geonames" );
77 if ( isStartElement() ) {
78 if ( name() ==
"entry" )
86 void GeonamesParser::readEntry()
88 Q_ASSERT( isStartElement()
89 && name() ==
"entry" );
92 m_list->append( item );
100 if ( isStartElement() ) {
101 if ( name() ==
"title" )
103 else if ( name() ==
"lng" )
104 readLongitude( item );
105 else if ( name() ==
"lat" )
106 readLatitude( item );
107 else if ( name() ==
"wikipediaUrl" )
109 else if ( name() ==
"summary" )
111 else if ( name() ==
"thumbnailImg" )
112 readThumbnailImage( item );
113 else if ( name() ==
"rank" )
116 readUnknownElement();
123 Q_ASSERT( isStartElement()
124 && name() ==
"title" );
129 if ( isEndElement() )
132 if ( isCharacters() ) {
133 item->
setName( text().toString() );
140 Q_ASSERT( isStartElement()
141 && name() ==
"lng" );
146 if ( isEndElement() )
149 if ( isCharacters() ) {
157 Q_ASSERT( isStartElement()
158 && name() ==
"lat" );
163 if ( isEndElement() )
166 if ( isCharacters() ) {
174 Q_ASSERT( isStartElement()
175 && name() ==
"wikipediaUrl" );
180 if ( isEndElement() )
183 if ( isCharacters() ) {
186 QString url = text().toString();
187 if ( !url.contains(
"m.wikipedia.org" ) ) {
188 url.replace(
"wikipedia.org",
"m.wikipedia.org" );
190 item->
setUrl( QUrl::fromEncoded( url.toUtf8() ) );
197 Q_ASSERT( isStartElement()
198 && name() ==
"summary" );
203 if ( isEndElement() )
206 if ( isCharacters() ) {
212 void GeonamesParser::readThumbnailImage(
WikipediaItem *item )
214 Q_ASSERT( isStartElement()
215 && name() ==
"thumbnailImg" );
220 if ( isEndElement() )
223 if ( isCharacters() ) {
231 Q_ASSERT( isStartElement()
232 && name() ==
"rank" );
237 if ( isEndElement() )
240 if ( isCharacters() ) {
241 item->
setRank( text().toString().toDouble() );
GeonamesParser(MarbleWidget *widget, QList< WikipediaItem * > *list, QObject *parent)
void setLongitude(qreal longitude)
void setName(const QString &name)
void setThumbnailImageUrl(const QUrl &thumbnailImageUrl)
void setUrl(const QUrl &url)
void setSummary(const QString &summary)
void setRank(double rank)
Set a popularity rank.
void setLatitude(qreal latitude)
bool read(const QByteArray &data)