summaryrefslogtreecommitdiffstats
path: root/map-widget/qmlmapwidgethelper.cpp
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 /map-widget/qmlmapwidgethelper.cpp
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 'map-widget/qmlmapwidgethelper.cpp')
-rw-r--r--map-widget/qmlmapwidgethelper.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/map-widget/qmlmapwidgethelper.cpp b/map-widget/qmlmapwidgethelper.cpp
index 1c0469c4a..16f57c317 100644
--- a/map-widget/qmlmapwidgethelper.cpp
+++ b/map-widget/qmlmapwidgethelper.cpp
@@ -210,7 +210,7 @@ void MapWidgetHelper::copyToClipboardCoordinates(QGeoCoordinate coord, bool form
prefs.coordinates_traditional = savep;
}
-void MapWidgetHelper::updateCurrentDiveSiteCoordinates(quint32 uuid, QGeoCoordinate coord)
+void MapWidgetHelper::updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeoCoordinate coord)
{
MapLocation *loc = m_mapLocationModel->getMapLocationForUuid(uuid);
if (loc)
@@ -220,6 +220,14 @@ void MapWidgetHelper::updateCurrentDiveSiteCoordinates(quint32 uuid, QGeoCoordin
emit coordinatesChanged();
}
+void MapWidgetHelper::updateCurrentDiveSiteCoordinatesToMap()
+{
+ 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);
+}
+
bool MapWidgetHelper::editMode()
{
return m_editMode;