From 746874a78e2abb53655e422abe66aa4f61fe47d1 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Thu, 9 Nov 2017 18:43:21 +0200 Subject: map-widget: allow real-time updates of edited markers This patch allows updating the location of map markers while editing a dive site and updating the text in the LocationInformationWidget in real-time. Currently it is only possible to see the marker changes by clicking 'Apply'. The modification required the following changes: - add the MapWidget::updateCurrentDiveSiteCoordinatesToMap() slot and call it each time the GPS text updates - separate the updateCurrentDiveSiteCoordinates(FromMap/ToMap) logic by having the FromMap/ToMap suffix to method names - make MapWidgetHelper::updateCurrentDiveSiteCoordinatesToMap() call a new MapLocationModel::updateMapLocationCoordinates() method, which updates selected location coordinates and the model - add MapLocation::setCoordinateNoEmit() that does not emit a signal when updating a coordinate Signed-off-by: Lubomir I. Ivanov --- desktop-widgets/locationinformation.cpp | 2 ++ desktop-widgets/mapwidget.cpp | 6 ++++++ desktop-widgets/mapwidget.h | 1 + 3 files changed, 9 insertions(+) (limited to 'desktop-widgets') diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp index 78126b172..a74f08fa1 100644 --- a/desktop-widgets/locationinformation.cpp +++ b/desktop-widgets/locationinformation.cpp @@ -52,6 +52,8 @@ 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 *, QEvent *ev) diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index aefda2a32..4e02ddf41 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -118,6 +118,12 @@ void MapWidget::coordinatesChangedLocal() emit coordinatesChanged(); } +void MapWidget::updateCurrentDiveSiteCoordinatesToMap() +{ + CHECK_IS_READY_RETURN_VOID(); + m_mapHelper->updateCurrentDiveSiteCoordinatesToMap(); +} + MapWidget::~MapWidget() { m_instance = NULL; diff --git a/desktop-widgets/mapwidget.h b/desktop-widgets/mapwidget.h index bb861d301..801913594 100644 --- a/desktop-widgets/mapwidget.h +++ b/desktop-widgets/mapwidget.h @@ -35,6 +35,7 @@ public slots: void selectedDivesChanged(QList); void coordinatesChangedLocal(); void doneLoading(QQuickWidget::Status status); + void updateCurrentDiveSiteCoordinatesToMap(); private: void setEditMode(bool editMode); -- cgit v1.2.3-70-g09d2