[Marble-commits] KDE/kdeedu/marble/src/plugins/runner/nominatim

Dennis Nienhüser earthwings at gentoo.org
Sat Nov 20 12:02:06 CET 2010


SVN commit 1199011 by nienhueser:

One QNetworkAccessManager is enough.

 M  +16 -8     OsmNominatimRunner.cpp  
 M  +4 -3      OsmNominatimRunner.h  


--- trunk/KDE/kdeedu/marble/src/plugins/runner/nominatim/OsmNominatimRunner.cpp #1199010:1199011
@@ -30,13 +30,10 @@
 {
 
 OsmNominatimRunner::OsmNominatimRunner( QObject *parent ) :
-    MarbleAbstractRunner( parent ), m_searchManager( new QNetworkAccessManager (this ) ),
-    m_reverseGeocodingManager( new QNetworkAccessManager ( this ) )
+    MarbleAbstractRunner( parent ), m_manager( new QNetworkAccessManager (this ) )
 {
-    connect(m_searchManager, SIGNAL(finished(QNetworkReply*)),
-            this, SLOT(handleSearchResult(QNetworkReply*)));
-    connect(m_reverseGeocodingManager, SIGNAL(finished(QNetworkReply*)),
-            this, SLOT(handleReverseGeocodingResult(QNetworkReply*)));
+    connect(m_manager, SIGNAL(finished(QNetworkReply*)),
+            this, SLOT(handleResult(QNetworkReply*)));
 }
 
 OsmNominatimRunner::~OsmNominatimRunner()
@@ -92,18 +89,29 @@
 
 void OsmNominatimRunner::startSearch()
 {
-    QNetworkReply *reply = m_searchManager->get(m_searchRequest);
+    QNetworkReply *reply = m_manager->get(m_searchRequest);
     connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
             this, SLOT(returnNoResults()));
 }
 
 void OsmNominatimRunner::startReverseGeocoding()
 {
-    QNetworkReply *reply = m_reverseGeocodingManager->get( m_reverseGeocodingRequest );
+    QNetworkReply *reply = m_manager->get( m_reverseGeocodingRequest );
     connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
             this, SLOT(returnNoReverseGeocodingResult()));
 }
 
+void OsmNominatimRunner::handleResult( QNetworkReply* reply )
+{
+    bool const isSearch = reply->url().path().endsWith( "search" );
+    if ( isSearch ) {
+        handleSearchResult( reply );
+    } else {
+        handleReverseGeocodingResult( reply );
+    }
+}
+
+
 void OsmNominatimRunner::handleSearchResult( QNetworkReply* reply )
 {   
     QDomDocument xml;
--- trunk/KDE/kdeedu/marble/src/plugins/runner/nominatim/OsmNominatimRunner.h #1199010:1199011
@@ -42,6 +42,9 @@
     virtual void search( const QString &searchTerm );
 
 private Q_SLOTS:
+    // Forward a result to the search or reverse geocoding handler
+    void handleResult( QNetworkReply* );
+
     // Http search request with nominatim.openstreetmap.org done
     void handleSearchResult( QNetworkReply* );
 
@@ -60,10 +63,8 @@
 private:
     void addData( const QDomNodeList &node, const QString &key, GeoDataExtendedData *extendedData );
 
-    QNetworkAccessManager* m_searchManager;
+    QNetworkAccessManager* m_manager;
 
-    QNetworkAccessManager* m_reverseGeocodingManager;
-
     QNetworkRequest m_reverseGeocodingRequest;
 
     QNetworkRequest m_searchRequest;


More information about the Marble-commits mailing list