diff options
author | Aaron McCarthy <aaron.mccarthy@jollamobile.com> | 2014-02-04 13:56:17 +1000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-10 00:42:29 +0100 |
commit | 20ee891ec034783b09c698916fbfc2127f92c803 (patch) | |
tree | 5fe8516cca36ec317ae5e63594293bddcb433d8b /src/imports/positioning/qdeclarativepositionsource.cpp | |
parent | 930de8867937b5a61786e5dc6723b229bf27e529 (diff) | |
download | qtlocation-20ee891ec034783b09c698916fbfc2127f92c803.tar.gz |
Add direction and vertical speed properties to QML Position type.
The QML and C++ position types now provide the same functionality.
Position attributes are always set/reset on every position update. This
ensures that old values of speed, accuracy, direction, and vertical
speed are not indefinitely reported in QML. Values are set to NaN and if
appropriate the associated is valid property is set.
[ChangeLog][QtPositioning][Position] Added direction and vertical speed
properities.
Change-Id: Ia02da8a5bc1cd68489eb58180986df512c24aa2f
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/imports/positioning/qdeclarativepositionsource.cpp')
-rw-r--r-- | src/imports/positioning/qdeclarativepositionsource.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/imports/positioning/qdeclarativepositionsource.cpp b/src/imports/positioning/qdeclarativepositionsource.cpp index a13092fc..317f03c7 100644 --- a/src/imports/positioning/qdeclarativepositionsource.cpp +++ b/src/imports/positioning/qdeclarativepositionsource.cpp @@ -43,6 +43,7 @@ #include "qdeclarativeposition_p.h" #include "error_messages.h" +#include <QtCore/QCoreApplication> #include <QtQml/qqmlinfo.h> #include <QtQml/qqml.h> #include <qnmeapositioninfosource.h> @@ -373,12 +374,11 @@ void QDeclarativePositionSource::setPosition(const QGeoPositionInfo &pi) if (pi.isValid()) { m_position.setTimestamp(pi.timestamp()); m_position.setCoordinate(pi.coordinate()); - if (pi.hasAttribute(QGeoPositionInfo::GroundSpeed)) - m_position.setSpeed(pi.attribute(QGeoPositionInfo::GroundSpeed)); - if (pi.hasAttribute(QGeoPositionInfo::HorizontalAccuracy)) - m_position.setHorizontalAccuracy(pi.attribute(QGeoPositionInfo::HorizontalAccuracy)); - if (pi.hasAttribute(QGeoPositionInfo::VerticalAccuracy)) - m_position.setVerticalAccuracy(pi.attribute(QGeoPositionInfo::VerticalAccuracy)); + m_position.setSpeed(pi.attribute(QGeoPositionInfo::GroundSpeed)); + m_position.setDirection(pi.attribute(QGeoPositionInfo::Direction)); + m_position.setVerticalSpeed(pi.attribute(QGeoPositionInfo::VerticalSpeed)); + m_position.setHorizontalAccuracy(pi.attribute(QGeoPositionInfo::HorizontalAccuracy)); + m_position.setVerticalAccuracy(pi.attribute(QGeoPositionInfo::VerticalAccuracy)); } else { m_position.invalidate(); } |