summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2018-03-07 17:40:23 +0100
committerPaolo Angelelli <paolo.angelelli@qt.io>2018-03-08 20:50:06 +0000
commitd7df0fa2952e3a00032ff50b0dc10ad93be57f54 (patch)
treecc00e7b778f233810a36a081dedd01962698bcba
parent86a406fd6b705d75567286f1b6c5a09d79a0a0cc (diff)
downloadqtlocation-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.cpp2
-rw-r--r--src/location/maps/qgeorouterequest.cpp4
-rw-r--r--src/location/maps/qgeorouterequest.h4
-rw-r--r--src/location/maps/qgeorouterequest_p.h2
-rw-r--r--tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h2
-rw-r--r--tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp14
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);