diff options
author | Alex Wilson <alex.wilson@nokia.com> | 2011-12-23 14:55:29 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-23 05:59:33 +0100 |
commit | b319a2d5d595c7343e3ac07d2f0bc153b5976c20 (patch) | |
tree | 717a86d41fbc3627999739baaa8c631475c3239d /src | |
parent | f99bde006f657e8790249b20c88be8181125bb95 (diff) | |
download | qtlocation-b319a2d5d595c7343e3ac07d2f0bc153b5976c20.tar.gz |
Adds coordinateChanged signal to QML Coordinates
First step towards teaching map items to listen to changes in their
source coordinates and lists.
Change-Id: Iacf6078b5517a52c82c906d839c332a459453f80
Reviewed-by: Juha Vuolle <juha.vuolle@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/location/qdeclarativecoordinate.cpp | 10 | ||||
-rw-r--r-- | src/imports/location/qdeclarativecoordinate_p.h | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/imports/location/qdeclarativecoordinate.cpp b/src/imports/location/qdeclarativecoordinate.cpp index a10cf7b2..67283ce9 100644 --- a/src/imports/location/qdeclarativecoordinate.cpp +++ b/src/imports/location/qdeclarativecoordinate.cpp @@ -83,6 +83,7 @@ QDeclarativeCoordinate::~QDeclarativeCoordinate() {} */ void QDeclarativeCoordinate::setCoordinate(const QGeoCoordinate &coordinate) { + bool changed = false; QGeoCoordinate previousCoordinate = m_coordinate; m_coordinate = coordinate; @@ -90,15 +91,21 @@ void QDeclarativeCoordinate::setCoordinate(const QGeoCoordinate &coordinate) if (coordinate.altitude() != previousCoordinate.altitude() && !(qIsNaN(coordinate.altitude()) && qIsNaN(previousCoordinate.altitude()))) { emit altitudeChanged(m_coordinate.altitude()); + changed = true; } if (coordinate.latitude() != previousCoordinate.latitude() && !(qIsNaN(coordinate.latitude()) && qIsNaN(previousCoordinate.latitude()))) { emit latitudeChanged(m_coordinate.latitude()); + changed = true; } if (coordinate.longitude() != previousCoordinate.longitude() && !(qIsNaN(coordinate.longitude()) && qIsNaN(previousCoordinate.longitude()))) { emit longitudeChanged(m_coordinate.longitude()); + changed = true; } + + if (changed) + emit coordinateChanged(m_coordinate); } QGeoCoordinate QDeclarativeCoordinate::coordinate() const @@ -120,6 +127,7 @@ void QDeclarativeCoordinate::setAltitude(double altitude) if (m_coordinate.altitude() != altitude) { m_coordinate.setAltitude(altitude); emit altitudeChanged(m_coordinate.altitude()); + emit coordinateChanged(m_coordinate); if (wasValid != m_coordinate.isValid()) emit validityChanged(m_coordinate.isValid()); @@ -146,6 +154,7 @@ void QDeclarativeCoordinate::setLongitude(double longitude) if (m_coordinate.longitude() != longitude) { m_coordinate.setLongitude(longitude); emit longitudeChanged(m_coordinate.longitude()); + emit coordinateChanged(m_coordinate); if (wasValid != m_coordinate.isValid()) emit validityChanged(m_coordinate.isValid()); @@ -172,6 +181,7 @@ void QDeclarativeCoordinate::setLatitude(double latitude) if (m_coordinate.latitude() != latitude) { m_coordinate.setLatitude(latitude); emit latitudeChanged(latitude); + emit coordinateChanged(m_coordinate); if (wasValid != m_coordinate.isValid()) emit validityChanged(m_coordinate.isValid()); diff --git a/src/imports/location/qdeclarativecoordinate_p.h b/src/imports/location/qdeclarativecoordinate_p.h index fbf807f7..7b80f21f 100644 --- a/src/imports/location/qdeclarativecoordinate_p.h +++ b/src/imports/location/qdeclarativecoordinate_p.h @@ -53,7 +53,7 @@ class QDeclarativeCoordinate : public QObject { Q_OBJECT - Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate) + Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate NOTIFY coordinateChanged) Q_PROPERTY(double latitude READ latitude WRITE setLatitude NOTIFY latitudeChanged) Q_PROPERTY(double longitude READ longitude WRITE setLongitude NOTIFY longitudeChanged) Q_PROPERTY(double altitude READ altitude WRITE setAltitude NOTIFY altitudeChanged) @@ -88,6 +88,7 @@ Q_SIGNALS: void longitudeChanged(double longitude); void altitudeChanged(double altitude); void validityChanged(bool valid); + void coordinateChanged(const QGeoCoordinate &coord); private: QGeoCoordinate m_coordinate; |