diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-10-08 12:57:46 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-11 16:25:32 -0700 |
commit | 66c5c5f72b82bd07c6222dbf624d6389237a590b (patch) | |
tree | 8741a3158c0f52dc5790456f70767dbd77e05cdc | |
parent | ad57871a2cbb03b0880d33184466e052a20dbd1d (diff) | |
download | subsurface-66c5c5f72b82bd07c6222dbf624d6389237a590b.tar.gz |
Map: remove LocationInformationWidget::coordinatesChanged signal
This was used by LocationInformationWidget to instruct the map
that the coordinates of the current dive site has changed.
There is no reason why this couldn't be a function call, as no
other object ever connect()s to this signal. In fact, such a
function already exists viz. updateLocationOnMap.
Therefore, replace the signal by a simple function call.
Moreover, the uuid and coordinates of the dive site were transported
via the global "displayed_dive_site" object. Instead, pass this
information in the parameters of the function. This makes it
easier to reason about data- and control-flow.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | desktop-widgets/locationinformation.cpp | 12 | ||||
-rw-r--r-- | desktop-widgets/locationinformation.h | 1 | ||||
-rw-r--r-- | desktop-widgets/mapwidget.cpp | 4 | ||||
-rw-r--r-- | desktop-widgets/mapwidget.h | 3 | ||||
-rw-r--r-- | map-widget/qmlmapwidgethelper.cpp | 10 | ||||
-rw-r--r-- | map-widget/qmlmapwidgethelper.h | 3 |
6 files changed, 17 insertions, 16 deletions
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp index 7a8381966..28a33ba2e 100644 --- a/desktop-widgets/locationinformation.cpp +++ b/desktop-widgets/locationinformation.cpp @@ -57,8 +57,6 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo this, &LocationInformationWidget::updateGpsCoordinates); connect(this, &LocationInformationWidget::endEditDiveSite, MapWidget::instance(), &MapWidget::repopulateLabels); - connect(this, &LocationInformationWidget::coordinatesChanged, - MapWidget::instance(), &MapWidget::updateCurrentDiveSiteCoordinatesToMap); } bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev) @@ -70,7 +68,7 @@ bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev) contextMenu.exec(ctx->globalPos()); return true; } else if (ev->type() == QEvent::FocusOut && object == ui.diveSiteCoordinates) { - emit coordinatesChanged(); + updateLocationOnMap(); } return false; } @@ -218,7 +216,7 @@ void LocationInformationWidget::acceptChanges() emit endRequestCoordinates(); emit endEditDiveSite(); emit stopFilterDiveSite(); - emit coordinatesChanged(); + updateLocationOnMap(); } void LocationInformationWidget::rejectChanges() @@ -227,7 +225,7 @@ void LocationInformationWidget::rejectChanges() emit endRequestCoordinates(); emit stopFilterDiveSite(); emit endEditDiveSite(); - emit coordinatesChanged(); + updateLocationOnMap(); } void LocationInformationWidget::showEvent(QShowEvent *ev) @@ -336,7 +334,9 @@ void LocationInformationWidget::reverseGeocode() void LocationInformationWidget::updateLocationOnMap() { - emit coordinatesChanged(); + if (displayed_dive_site.uuid) + MapWidget::instance()->updateDiveSiteCoordinates(displayed_dive_site.uuid, displayed_dive_site.latitude, + displayed_dive_site.longitude); } DiveLocationFilterProxyModel::DiveLocationFilterProxyModel(QObject*) diff --git a/desktop-widgets/locationinformation.h b/desktop-widgets/locationinformation.h index 736e53e04..66d52a490 100644 --- a/desktop-widgets/locationinformation.h +++ b/desktop-widgets/locationinformation.h @@ -38,7 +38,6 @@ private slots: signals: void startEditDiveSite(uint32_t uuid); void endEditDiveSite(); - void coordinatesChanged(); void startFilterDiveSite(uint32_t uuid); void stopFilterDiveSite(); void requestCoordinates(); diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index a940cdb39..2966401d2 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -122,10 +122,10 @@ void MapWidget::coordinatesChangedLocal() emit coordinatesChanged(); } -void MapWidget::updateCurrentDiveSiteCoordinatesToMap() +void MapWidget::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude) { CHECK_IS_READY_RETURN_VOID(); - m_mapHelper->updateCurrentDiveSiteCoordinatesToMap(); + m_mapHelper->updateDiveSiteCoordinates(uuid, latitude, longitude); } MapWidget::~MapWidget() diff --git a/desktop-widgets/mapwidget.h b/desktop-widgets/mapwidget.h index 02b68483d..aa528c980 100644 --- a/desktop-widgets/mapwidget.h +++ b/desktop-widgets/mapwidget.h @@ -2,6 +2,7 @@ #ifndef MAPWIDGET_H #define MAPWIDGET_H +#include "core/units.h" #include <QQuickWidget> #include <QList> @@ -36,7 +37,7 @@ public slots: void selectedDivesChanged(QList<int>); void coordinatesChangedLocal(); void doneLoading(QQuickWidget::Status status); - void updateCurrentDiveSiteCoordinatesToMap(); + void updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude); private: void setEditMode(bool editMode); diff --git a/map-widget/qmlmapwidgethelper.cpp b/map-widget/qmlmapwidgethelper.cpp index b5fd916cd..f5be15ba6 100644 --- a/map-widget/qmlmapwidgethelper.cpp +++ b/map-widget/qmlmapwidgethelper.cpp @@ -277,12 +277,12 @@ void MapWidgetHelper::updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeo emit coordinatesChanged(); } -void MapWidgetHelper::updateCurrentDiveSiteCoordinatesToMap() +void MapWidgetHelper::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude) { - const qreal latitude = displayed_dive_site.latitude.udeg * 0.000001; - const qreal longitude = displayed_dive_site.longitude.udeg * 0.000001; - QGeoCoordinate coord(latitude, longitude); - m_mapLocationModel->updateMapLocationCoordinates(displayed_dive_site.uuid, coord); + const qreal latitude_r = latitude.udeg * 0.000001; + const qreal longitude_r = longitude.udeg * 0.000001; + QGeoCoordinate coord(latitude_r, longitude_r); + m_mapLocationModel->updateMapLocationCoordinates(uuid, coord); QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(coord))); } diff --git a/map-widget/qmlmapwidgethelper.h b/map-widget/qmlmapwidgethelper.h index e5c77aa8a..77f352965 100644 --- a/map-widget/qmlmapwidgethelper.h +++ b/map-widget/qmlmapwidgethelper.h @@ -2,6 +2,7 @@ #ifndef QMLMAPWIDGETHELPER_H #define QMLMAPWIDGETHELPER_H +#include "core/units.h" #include <QObject> #include <QGeoCoordinate> #include <QVariant> @@ -35,7 +36,7 @@ public: Q_INVOKABLE void calculateSmallCircleRadius(QGeoCoordinate coord); Q_INVOKABLE void updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeoCoordinate coord); Q_INVOKABLE void selectVisibleLocations(); - void updateCurrentDiveSiteCoordinatesToMap(); + void updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude); bool editMode(); void setEditMode(bool editMode); QString pluginObject(); |