diff options
Diffstat (limited to 'src/location')
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeoroutemodel.cpp | 25 | ||||
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeoroutemodel_p.h | 5 | ||||
-rw-r--r-- | src/location/maps/qgeorouterequest.cpp | 24 | ||||
-rw-r--r-- | src/location/maps/qgeorouterequest.h | 4 | ||||
-rw-r--r-- | src/location/maps/qgeorouterequest_p.h | 1 |
5 files changed, 59 insertions, 0 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp b/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp index 499f1c51..06a03791 100644 --- a/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp +++ b/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp @@ -1446,6 +1446,31 @@ QDeclarativeGeoRouteQuery::RouteOptimizations QDeclarativeGeoRouteQuery::routeOp return optimization; } +/*! + \qmlproperty date RouteQuery::departureTime + + The departure time to be used when querying for the route. + The default value is an invalid date, meaning no departure time will be used in the query. + + \since 5.13 +*/ +void QDeclarativeGeoRouteQuery::setDepartureTime(const QDateTime &departureTime) +{ + if (departureTime == request_.departureTime()) + return; + + request_.setDepartureTime(departureTime); + if (complete_) { + emit departureTimeChanged(); + emit queryDetailsChanged(); + } +} + +QDateTime QDeclarativeGeoRouteQuery::departureTime() const +{ + return request_.departureTime(); +} + void QDeclarativeGeoRouteQuery::setRouteOptimizations(QDeclarativeGeoRouteQuery::RouteOptimizations optimization) { QGeoRouteRequest::RouteOptimizations reqOptimizations; diff --git a/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h b/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h index afffc21a..39fd84d6 100644 --- a/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h +++ b/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h @@ -296,6 +296,7 @@ class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoRouteQuery : public QObject, publ Q_PROPERTY(QJSValue excludedAreas READ excludedAreas WRITE setExcludedAreas NOTIFY excludedAreasChanged) Q_PROPERTY(QList<int> featureTypes READ featureTypes NOTIFY featureTypesChanged) Q_PROPERTY(QVariantMap extraParameters READ extraParameters REVISION 11) + Q_PROPERTY(QDateTime departureTime READ departureTime WRITE setDepartureTime NOTIFY departureTimeChanged REVISION 13) Q_PROPERTY(QQmlListProperty<QObject> quickChildren READ declarativeChildren DESIGNABLE false) Q_CLASSINFO("DefaultProperty", "quickChildren") Q_INTERFACES(QQmlParserStatus) @@ -409,6 +410,9 @@ public: void setRouteOptimizations(RouteOptimizations optimization); RouteOptimizations routeOptimizations() const; + void setDepartureTime(const QDateTime &departureTime); + QDateTime departureTime() const; + template <typename T = QObject> QList<T*> quickChildren() const { @@ -435,6 +439,7 @@ Q_SIGNALS: void queryDetailsChanged(); Q_REVISION(11) void extraParametersChanged(); + void departureTimeChanged(); private Q_SLOTS: void excludedAreaCoordinateChanged(); diff --git a/src/location/maps/qgeorouterequest.cpp b/src/location/maps/qgeorouterequest.cpp index 57fbe207..412dc598 100644 --- a/src/location/maps/qgeorouterequest.cpp +++ b/src/location/maps/qgeorouterequest.cpp @@ -469,6 +469,30 @@ QGeoRouteRequest::ManeuverDetail QGeoRouteRequest::maneuverDetail() const } /*! + Sets the departure time for the route calculation. This information can be used by + the backend to calculate a faster route, for example by avoiding blockages present at + given points in time. + + The default value is an invalid \l QDateTime + + \since 5.13 +*/ +void QGeoRouteRequest::setDepartureTime(const QDateTime &departureTime) +{ + d_ptr->departureTime = departureTime; +} + +/*! + Returns the departure time in the request. + + \since 5.13 +*/ +QDateTime QGeoRouteRequest::departureTime() const +{ + return d_ptr->departureTime; +} + +/*! Sets the extra parameters \a extraParameters for the route request. The format of the extra parameters is plugin specific, and documented per plugin. diff --git a/src/location/maps/qgeorouterequest.h b/src/location/maps/qgeorouterequest.h index 5a4bc61e..52057ce0 100644 --- a/src/location/maps/qgeorouterequest.h +++ b/src/location/maps/qgeorouterequest.h @@ -149,6 +149,10 @@ public: void setManeuverDetail(ManeuverDetail maneuverDetail); ManeuverDetail maneuverDetail() const; + // defaults to invalid datetime + void setDepartureTime(const QDateTime &departureTime); + QDateTime departureTime() const; + void setExtraParameters(const QVariantMap &extraParameters); QVariantMap extraParameters() const; diff --git a/src/location/maps/qgeorouterequest_p.h b/src/location/maps/qgeorouterequest_p.h index df0cd62c..71c8b58b 100644 --- a/src/location/maps/qgeorouterequest_p.h +++ b/src/location/maps/qgeorouterequest_p.h @@ -77,6 +77,7 @@ public: QGeoRouteRequest::RouteOptimizations routeOptimization; QGeoRouteRequest::SegmentDetail segmentDetail; QGeoRouteRequest::ManeuverDetail maneuverDetail; + QDateTime departureTime; QVariantMap extraParameters; }; |