[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