diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-03-07 17:40:23 +0100 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-03-08 20:50:06 +0000 |
commit | d7df0fa2952e3a00032ff50b0dc10ad93be57f54 (patch) | |
tree | cc00e7b778f233810a36a081dedd01962698bcba | |
parent | 86a406fd6b705d75567286f1b6c5a09d79a0a0cc (diff) | |
download | qtlocation-d7df0fa2952e3a00032ff50b0dc10ad93be57f54.tar.gz |
API Fix: change QGeoRouteRequest::extraParameters into QVariantMapv5.11.0-beta2
Needed as it turns out the QGeoRouteRequest associated with a QGeoRoute
has to be exposed also through the declarative API (so
QDeclarativeGeoRoute must expose an associated
QDeclarativeGeoRouteRequest).
QDeclarativeGeoRouteRequest was, until now, intended to be only a
one-way API (to feed data into the plugin).
Now that it has also to expose data coming from the plugin, including
the associated extraParameters that do would come anymore from
nested MapParameters but from the QGeoRouteRequest itself.
For this reason the type has to be a QML-friently type.
Change-Id: I083e0fe97ad1088f6084665037003e24edb54371
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeoroutemodel.cpp | 2 | ||||
-rw-r--r-- | src/location/maps/qgeorouterequest.cpp | 4 | ||||
-rw-r--r-- | src/location/maps/qgeorouterequest.h | 4 | ||||
-rw-r--r-- | src/location/maps/qgeorouterequest_p.h | 2 | ||||
-rw-r--r-- | tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h | 2 | ||||
-rw-r--r-- | tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp | 14 |
6 files changed, 15 insertions, 13 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp b/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp index 8066d917..0a95ddf9 100644 --- a/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp +++ b/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp @@ -1442,7 +1442,7 @@ QGeoRouteRequest QDeclarativeGeoRouteQuery::routeRequest() m_extraParametersChanged = false; // Update extra params into request const QList<QDeclarativeGeoMapParameter *> params = quickChildren<QDeclarativeGeoMapParameter>(); - QMap<QString, QVariantMap> extraParameters; + QVariantMap extraParameters; for (const QDeclarativeGeoMapParameter *p: params) extraParameters[p->type()] = p->toVariantMap(); request_.setExtraParameters(extraParameters); diff --git a/src/location/maps/qgeorouterequest.cpp b/src/location/maps/qgeorouterequest.cpp index ab0a3109..57ef1c03 100644 --- a/src/location/maps/qgeorouterequest.cpp +++ b/src/location/maps/qgeorouterequest.cpp @@ -473,7 +473,7 @@ QGeoRouteRequest::ManeuverDetail QGeoRouteRequest::maneuverDetail() const \since 5.11 */ -void QGeoRouteRequest::setExtraParameters(const QMap<QString, QVariantMap> &extraParameters) +void QGeoRouteRequest::setExtraParameters(const QVariantMap &extraParameters) { d_ptr->extraParameters = extraParameters; } @@ -483,7 +483,7 @@ void QGeoRouteRequest::setExtraParameters(const QMap<QString, QVariantMap> &extr \since 5.11 */ -QMap<QString, QVariantMap> QGeoRouteRequest::extraParameters() const +QVariantMap QGeoRouteRequest::extraParameters() const { return d_ptr->extraParameters; } diff --git a/src/location/maps/qgeorouterequest.h b/src/location/maps/qgeorouterequest.h index 2c34479b..5a4bc61e 100644 --- a/src/location/maps/qgeorouterequest.h +++ b/src/location/maps/qgeorouterequest.h @@ -149,8 +149,8 @@ public: void setManeuverDetail(ManeuverDetail maneuverDetail); ManeuverDetail maneuverDetail() const; - void setExtraParameters(const QMap<QString, QVariantMap> &extraParameters); - QMap<QString, QVariantMap> extraParameters() const; + void setExtraParameters(const QVariantMap &extraParameters); + QVariantMap extraParameters() const; private: QExplicitlySharedDataPointer<QGeoRouteRequestPrivate> d_ptr; diff --git a/src/location/maps/qgeorouterequest_p.h b/src/location/maps/qgeorouterequest_p.h index 7b3a8499..df0cd62c 100644 --- a/src/location/maps/qgeorouterequest_p.h +++ b/src/location/maps/qgeorouterequest_p.h @@ -77,7 +77,7 @@ public: QGeoRouteRequest::RouteOptimizations routeOptimization; QGeoRouteRequest::SegmentDetail segmentDetail; QGeoRouteRequest::ManeuverDetail maneuverDetail; - QMap<QString, QVariantMap> extraParameters; + QVariantMap extraParameters; }; QT_END_NAMESPACE diff --git a/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h b/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h index 0a0ec463..303015b7 100644 --- a/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h +++ b/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h @@ -169,7 +169,7 @@ public: QList<QGeoRoute> routes; int travelTime = 0; if (request.extraParameters().contains("test-traveltime")) - travelTime = request.extraParameters().value("test-traveltime").value("requestedTime").toInt(); + travelTime = request.extraParameters().value("test-traveltime").toMap().value("requestedTime").toInt(); for (int i = 0; i < request.numberAlternativeRoutes(); ++i) { QGeoRoute route; diff --git a/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp b/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp index 508571c3..d29e3d49 100644 --- a/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp +++ b/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp @@ -321,25 +321,27 @@ void tst_QGeoRouteRequest::featureWeight() void tst_QGeoRouteRequest::extraParameters_data() { - QTest::addColumn<QMap<QString, QVariantMap>>("extraParameters"); + QTest::addColumn<QVariantMap>("extraParameters"); - QMap<QString, QVariantMap> params; + QVariantMap params; QTest::newRow("Empty") << params; - params["param1"] = {{"property1", QVariant(42)} , {"property2", QVariant("42")} , {"property3", QVariant("42.0")}}; + const QVariantMap param1 = {{"property1", QVariant(42)} , {"property2", QVariant("42")} , {"property3", QVariant("42.0")}}; + params["param1"] = param1; QTest::newRow("One param") << params; - params["param2"] = {{"property1", QVariant(43)} , {"property2", QVariant("43")} , {"property3", QVariant("43.0")}}; + const QVariantMap param2 = {{"property1", QVariant(43)} , {"property2", QVariant("43")} , {"property3", QVariant("43.0")}}; + params["param2"] = param2; QTest::newRow("Two params") << params; } void tst_QGeoRouteRequest::extraParameters() { - typedef QMap<QString, QVariantMap> ParameterType; + typedef QVariantMap ParameterType; QFETCH(ParameterType , extraParameters); - QMap<QString, QVariantMap> emptyParams; + QVariantMap emptyParams; qgeorouterequest->setExtraParameters(extraParameters); QCOMPARE(qgeorouterequest->extraParameters(), extraParameters); qgeorouterequest->setExtraParameters(emptyParams); |