12: QGeoRouteReply(request, parent)
15 setError(UnknownError, QStringLiteral(
"Null reply"));
18 connect(reply, &QNetworkReply::finished,
19 this, &QGeoRouteReplyOsm::networkReplyFinished);
20 connect(reply, &QNetworkReply::errorOccurred,
21 this, &QGeoRouteReplyOsm::networkReplyError);
22 connect(
this, &QGeoRouteReply::aborted, reply, &QNetworkReply::abort);
23 connect(
this, &QObject::destroyed, reply, &QObject::deleteLater);
26QGeoRouteReplyOsm::~QGeoRouteReplyOsm()
30void QGeoRouteReplyOsm::networkReplyFinished()
32 QNetworkReply *reply =
static_cast<QNetworkReply *>(sender());
35 if (reply->error() != QNetworkReply::NoError)
39 const QGeoRouteParser *parser = engine->routeParser();
41 QList<QGeoRoute> routes;
43 QGeoRouteReply::Error error = parser->parseReply(routes, errorString, reply->readAll());
45 for (QGeoRoute &route : routes) {
46 route.setRequest(request());
47 for (QGeoRoute &leg: route.routeLegs()) {
48 leg.setRequest(request());
52 if (error == QGeoRouteReply::NoError) {
53 setRoutes(routes.mid(0, request().numberAlternativeRoutes() + 1));
57 setError(error, errorString);
61void QGeoRouteReplyOsm::networkReplyError(QNetworkReply::NetworkError error)
64 QNetworkReply *reply =
static_cast<QNetworkReply *>(sender());
66 setError(QGeoRouteReply::CommunicationError, reply->errorString());
The QNetworkReply class contains the data and headers for a request sent with QNetworkAccessManager.
Combined button and popup list for selecting options.