diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-11-09 18:43:21 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-11-09 12:40:25 -0800 |
commit | 746874a78e2abb53655e422abe66aa4f61fe47d1 (patch) | |
tree | 35a8db73631e334089f9ba41f8af9c7c5e63a5fb /map-widget/qmlmapwidgethelper.cpp | |
parent | 89ccdc31784f37a4f29befd2f45a33f50a121dc0 (diff) | |
download | subsurface-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.cpp | 10 |
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; |