summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-09 18:43:21 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-11-09 12:40:25 -0800
commit746874a78e2abb53655e422abe66aa4f61fe47d1 (patch)
tree35a8db73631e334089f9ba41f8af9c7c5e63a5fb /desktop-widgets
parent89ccdc31784f37a4f29befd2f45a33f50a121dc0 (diff)
downloadsubsurface-746874a78e2abb53655e422abe66aa4f61fe47d1.tar.gz
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 <neolit123@gmail.com>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/locationinformation.cpp2
-rw-r--r--desktop-widgets/mapwidget.cpp6
-rw-r--r--desktop-widgets/mapwidget.h1
3 files changed, 9 insertions, 0 deletions
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<int>);
void coordinatesChangedLocal();
void doneLoading(QQuickWidget::Status status);
+ void updateCurrentDiveSiteCoordinatesToMap();
private:
void setEditMode(bool editMode);