From 6240302be82af3269e12687463ccae9b6d3a6862 Mon Sep 17 00:00:00 2001 From: Nate Weibley Date: Thu, 16 Jun 2016 16:26:16 -0400 Subject: [PATCH] Updating CoordinateVector to be less noisy and easier to bind to VisualMissionItems --- src/QmlControls/CoordinateVector.cc | 23 ++++++++++++++++------- src/QmlControls/CoordinateVector.h | 5 ++++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/QmlControls/CoordinateVector.cc b/src/QmlControls/CoordinateVector.cc index 8a641fb79..1328962c3 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 593665b9a..35561b53a 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); -- 2.22.0