diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-12-05 08:43:49 +0100 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2019-02-01 14:09:46 +0000 |
commit | 8e923d801b460ccc6fdc92d4a7bc8750410ad042 (patch) | |
tree | 83a8adb0dc109b9784191dad5bab00e12bbb9aa3 /src/location/maps | |
parent | 1ac41150501d3c5cc4a9a6ed9c93729687666553 (diff) | |
download | qtlocation-8e923d801b460ccc6fdc92d4a7bc8750410ad042.tar.gz |
Provide additional navigation information via Navigator
With this patch, Navigator becomes able to expose additional running
navigation information such as distance to next maneuver, traveled
distance, and so on.
This information must be made available by the
engines by emitting the related signals and implement the related
methods, in QAbstractNavigator subclasses.
This patch also groups all navigation read-only progress information
into a property group inside Navigator, called directions.
Change-Id: I00baf64bafe88cd21d4fef06dae0e7331a40ff70
Fixes: QTBUG-70238
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
Diffstat (limited to 'src/location/maps')
-rw-r--r-- | src/location/maps/qnavigationmanagerengine.cpp | 60 | ||||
-rw-r--r-- | src/location/maps/qnavigationmanagerengine_p.h | 24 |
2 files changed, 81 insertions, 3 deletions
diff --git a/src/location/maps/qnavigationmanagerengine.cpp b/src/location/maps/qnavigationmanagerengine.cpp index d0f8418e..8837e5c6 100644 --- a/src/location/maps/qnavigationmanagerengine.cpp +++ b/src/location/maps/qnavigationmanagerengine.cpp @@ -86,6 +86,66 @@ QLocale::MeasurementSystem QAbstractNavigator::measurementSystem() const return d->measurementSystem; } +QVariant QAbstractNavigator::nextManeuverIcon() const +{ + return QVariant(); +} + +double QAbstractNavigator::distanceToNextManeuver() const +{ + return qQNaN(); +} + +int QAbstractNavigator::timeToNextManeuver() const +{ + return -1; +} + +int QAbstractNavigator::remainingTravelTime() const +{ + return -1; +} + +double QAbstractNavigator::remainingTravelDistance() const +{ + return qQNaN(); +} + +int QAbstractNavigator::remainingTravelTimeToNextWaypoint() const +{ + return -1; +} + +double QAbstractNavigator::remainingTravelDistanceToNextWaypoint() const +{ + return qQNaN(); +} + +double QAbstractNavigator::traveledDistance() const +{ + return 0; +} + +int QAbstractNavigator::traveledTime() const +{ + return 0; +} + +QGeoRoute QAbstractNavigator::currentRoute() const +{ + return QGeoRoute(); +} + +QGeoRouteLeg QAbstractNavigator::currentRouteLeg() const +{ + return QGeoRouteLeg(); +} + +int QAbstractNavigator::currentSegment() const +{ + return 0; +} + QNavigationManagerEngine::QNavigationManagerEngine(const QVariantMap ¶meters, QObject *parent) : QObject(parent) , d(new QNavigationManagerEnginePrivate) diff --git a/src/location/maps/qnavigationmanagerengine_p.h b/src/location/maps/qnavigationmanagerengine_p.h index e7b3876c..331df64f 100644 --- a/src/location/maps/qnavigationmanagerengine_p.h +++ b/src/location/maps/qnavigationmanagerengine_p.h @@ -65,6 +65,8 @@ class QNavigationManager; class QNavigationManagerEnginePrivate; class QDeclarativeNavigatorParams; class QDeclarativeGeoWaypoint; +class QDeclarativeGeoRouteLeg; +class QDeclarativeGeoRoute; /* This class is not supposed to react on QDeclarativeNavigator properties changes. @@ -85,6 +87,19 @@ public: virtual bool active() const = 0; virtual bool ready() const = 0; + virtual QVariant nextManeuverIcon() const; + virtual double distanceToNextManeuver() const; + virtual int timeToNextManeuver() const; + virtual int remainingTravelTime() const; + virtual double remainingTravelDistance() const; + virtual int remainingTravelTimeToNextWaypoint() const; + virtual double remainingTravelDistanceToNextWaypoint() const; + virtual double traveledDistance() const; + virtual int traveledTime() const; + virtual QGeoRoute currentRoute() const; + virtual QGeoRouteLeg currentRouteLeg() const; + virtual int currentSegment() const; + public slots: virtual bool start() = 0; virtual bool stop() = 0; @@ -95,9 +110,12 @@ signals: void activeChanged(bool active); void waypointReached(const QDeclarativeGeoWaypoint *pos); void destinationReached(); - void currentRouteChanged(const QGeoRoute &route); - void currentRouteLegChanged(const QGeoRouteLeg &route); - void currentSegmentChanged(int segment); + void currentRouteChanged(); + void currentRouteLegChanged(); + void currentSegmentChanged(); + + void nextManeuverIconChanged(); + void progressInformationChanged(); private: QScopedPointer<QAbstractNavigatorPrivate> d; |