diff --git a/src/QmlControls/CoordinateVector.cc b/src/QmlControls/CoordinateVector.cc index 8a641fb79c4f802c81d88f34c22d0770cea4c596..1328962c399fd671ee97e6d5304afd836a64431b 100644 --- a/src/QmlControls/CoordinateVector.cc +++ b/src/QmlControls/CoordinateVector.cc @@ -27,15 +27,24 @@ CoordinateVector::CoordinateVector(const QGeoCoordinate& coordinate1, const QGeo } -CoordinateVector::~CoordinateVector() +void CoordinateVector::setCoordinates(const QGeoCoordinate& coordinate1, const QGeoCoordinate& coordinate2) { - + setCoordinate1(coordinate1); + setCoordinate2(coordinate2); } -void CoordinateVector::setCoordinates(const QGeoCoordinate& coordinate1, const QGeoCoordinate& coordinate2) +void CoordinateVector::setCoordinate1(const QGeoCoordinate &coordinate) +{ + if (_coordinate1 != coordinate) { + _coordinate1 = coordinate; + emit coordinate1Changed(_coordinate1); + } +} + +void CoordinateVector::setCoordinate2(const QGeoCoordinate &coordinate) { - _coordinate1 = coordinate1; - _coordinate2 = coordinate2; - emit coordinate1Changed(_coordinate1); - emit coordinate2Changed(_coordinate2); + if (_coordinate2 != coordinate) { + _coordinate2 = coordinate; + emit coordinate2Changed(_coordinate2); + } } diff --git a/src/QmlControls/CoordinateVector.h b/src/QmlControls/CoordinateVector.h index 593665b9aba7bdcd4764485833ae9e6c5ce0000a..35561b53a4940d89ca89af5dc03098aa92ab9641 100644 --- a/src/QmlControls/CoordinateVector.h +++ b/src/QmlControls/CoordinateVector.h @@ -21,12 +21,15 @@ class CoordinateVector : public QObject public: CoordinateVector(QObject* parent = NULL); CoordinateVector(const QGeoCoordinate& coordinate1, const QGeoCoordinate& coordinate2, QObject* parent = NULL); - ~CoordinateVector(); Q_PROPERTY(QGeoCoordinate coordinate1 MEMBER _coordinate1 NOTIFY coordinate1Changed) Q_PROPERTY(QGeoCoordinate coordinate2 MEMBER _coordinate2 NOTIFY coordinate2Changed) void setCoordinates(const QGeoCoordinate& coordinate1, const QGeoCoordinate& coordinate2); + +public slots: + void setCoordinate1(const QGeoCoordinate& coordinate); + void setCoordinate2(const QGeoCoordinate& coordinate); signals: void coordinate1Changed(QGeoCoordinate coordinate);