summaryrefslogtreecommitdiffstats
path: root/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/geoservices/osm/qplacemanagerengineosm.cpp')
-rw-r--r--src/plugins/geoservices/osm/qplacemanagerengineosm.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp b/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp
index 16632b67..7e1a2f6c 100644
--- a/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp
+++ b/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp
@@ -108,6 +108,14 @@ QPlaceManagerEngineOsm::QPlaceManagerEngineOsm(const QVariantMap &parameters,
else
m_urlPrefix = QStringLiteral("http://nominatim.openstreetmap.org/search");
+
+ if (parameters.contains(QStringLiteral("osm.places.debug_query")))
+ m_debugQuery = parameters.value(QStringLiteral("osm.places.debug_query")).toBool();
+
+ if (parameters.contains(QStringLiteral("osm.places.page_size"))
+ && parameters.value(QStringLiteral("osm.places.page_size")).canConvert<int>())
+ m_pageSize = parameters.value(QStringLiteral("osm.places.page_size")).toInt();
+
*error = QGeoServiceProvider::NoError;
errorString->clear();
}
@@ -167,6 +175,8 @@ QPlaceSearchReply *QPlaceManagerEngineOsm::search(const QPlaceSearchRequest &req
queryItems.addQueryItem(QStringLiteral("exclude_place_ids"), placeIds.join(QLatin1Char(',')));
queryItems.addQueryItem(QStringLiteral("addressdetails"), QStringLiteral("1"));
+ queryItems.addQueryItem(QStringLiteral("limit"), (request.limit() > 0) ? QString::number(request.limit())
+ : QString::number(m_pageSize));
QUrl requestUrl(m_urlPrefix);
requestUrl.setQuery(queryItems);
@@ -178,6 +188,9 @@ QPlaceSearchReply *QPlaceManagerEngineOsm::search(const QPlaceSearchRequest &req
connect(reply, SIGNAL(error(QPlaceReply::Error,QString)),
this, SLOT(replyError(QPlaceReply::Error,QString)));
+ if (m_debugQuery)
+ reply->requestUrl = requestUrl.toString();
+
return reply;
}