summaryrefslogtreecommitdiff
path: root/src/plugins/geoservices/osm/qgeoroutereplyosm.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-12 12:50:23 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-12 12:50:23 +0200
commit6fd2a05e0cb87f7470f9df0cdcbfd9883a764ff6 (patch)
treed291ede9b7d52e93ae75cabae0cb49522877500c /src/plugins/geoservices/osm/qgeoroutereplyosm.cpp
parent5dddfc5121cac154023569fe69b417054ba53188 (diff)
parent09f68b95b125cef0c8e93092b0aad3a3e794913f (diff)
downloadqtlocation-6fd2a05e0cb87f7470f9df0cdcbfd9883a764ff6.tar.gz
Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I48f866a8fbb8af18dee640eada24556d097059b0
Diffstat (limited to 'src/plugins/geoservices/osm/qgeoroutereplyosm.cpp')
-rw-r--r--src/plugins/geoservices/osm/qgeoroutereplyosm.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/geoservices/osm/qgeoroutereplyosm.cpp b/src/plugins/geoservices/osm/qgeoroutereplyosm.cpp
index 79298543..740828f3 100644
--- a/src/plugins/geoservices/osm/qgeoroutereplyosm.cpp
+++ b/src/plugins/geoservices/osm/qgeoroutereplyosm.cpp
@@ -339,6 +339,7 @@ void QGeoRouteReplyOsm::networkReplyFinished()
if (m_reply->error() != QNetworkReply::NoError) {
setError(QGeoRouteReply::CommunicationError, m_reply->errorString());
m_reply->deleteLater();
+ m_reply = 0;
return;
}
@@ -348,8 +349,18 @@ void QGeoRouteReplyOsm::networkReplyFinished()
QJsonObject object = document.object();
//double version = object.value(QStringLiteral("version")).toDouble();
- //int status = object.value(QStringLiteral("status")).toDouble();
- //QString statusMessage = object.value(QStringLiteral("status_message")).toString();
+ int status = object.value(QStringLiteral("status")).toDouble();
+ QString statusMessage = object.value(QStringLiteral("status_message")).toString();
+
+ // status code is 0 in case of success
+ // status code is 207 if no route was found
+ // an error occurred when trying to find a route
+ if (0 != status) {
+ setError(QGeoRouteReply::UnknownError, statusMessage);
+ m_reply->deleteLater();
+ m_reply = 0;
+ return;
+ }
QJsonObject routeSummary = object.value(QStringLiteral("route_summary")).toObject();
@@ -388,6 +399,7 @@ void QGeoRouteReplyOsm::networkReplyFinished()
}
m_reply->deleteLater();
+ m_reply = 0;
}
void QGeoRouteReplyOsm::networkReplyError(QNetworkReply::NetworkError error)