summaryrefslogtreecommitdiff
path: root/src/location
diff options
context:
space:
mode:
Diffstat (limited to 'src/location')
-rw-r--r--src/location/declarativemaps/qdeclarativegeoroutemodel.cpp25
-rw-r--r--src/location/declarativemaps/qdeclarativegeoroutemodel_p.h5
-rw-r--r--src/location/maps/qgeorouterequest.cpp24
-rw-r--r--src/location/maps/qgeorouterequest.h4
-rw-r--r--src/location/maps/qgeorouterequest_p.h1
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;
};