diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-11-19 04:23:59 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-11-19 04:28:15 -0800 |
commit | e8a4420c59300554ee29af29834b6dcde4f8139a (patch) | |
tree | a5e9698a537834937fe0eb02c69f643f35450da6 /qt-ui/globe.cpp | |
parent | 788671944346c75dcf3562e4703928bca9b26600 (diff) | |
download | subsurface-e8a4420c59300554ee29af29834b6dcde4f8139a.tar.gz |
Immediately show new locations on globe widget
When modifying or adding a dive location on the globe widget while in dive
edit or dive add mode, we now show the modified / new location right away
on the globe (assuming a location name has been given). This makes it much
easier to manually reposition a dive location.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/globe.cpp')
-rw-r--r-- | qt-ui/globe.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/qt-ui/globe.cpp b/qt-ui/globe.cpp index 3ea01f0d8..846eabb1d 100644 --- a/qt-ui/globe.cpp +++ b/qt-ui/globe.cpp @@ -120,19 +120,12 @@ void GlobeGPS::mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit unit) } } -void GlobeGPS::reload() +void GlobeGPS::repopulateLabels() { if (loadedDives) { model()->treeModel()->removeDocument(loadedDives); delete loadedDives; } - - if (editingDiveCoords) { - editingDiveCoords = 0; - if (messageWidget->isVisible()) - messageWidget->animatedHide(); - } - loadedDives = new GeoDataDocument; QMap<QString, GeoDataPlacemark *> locationMap; @@ -162,6 +155,16 @@ void GlobeGPS::reload() model()->treeModel()->addDocument(loadedDives); } +void GlobeGPS::reload() +{ + if (editingDiveCoords) { + editingDiveCoords = 0; + if (messageWidget->isVisible()) + messageWidget->animatedHide(); + } + repopulateLabels(); +} + void GlobeGPS::centerOn(dive* dive) { // dive has changed, if we had the 'editingDive', hide it. @@ -255,6 +258,7 @@ void GlobeGPS::mousePressEvent(QMouseEvent* event) if (mainWindow()->information()->isEditing() && geoCoordinates(event->pos().x(), event->pos().y(), lon, lat, GeoDataCoordinates::Degree)) { mainWindow()->information()->updateCoordinatesText(lat, lon); + repopulateLabels(); } else if (editingDiveCoords && geoCoordinates(event->pos().x(), event->pos().y(), lon, lat, GeoDataCoordinates::Degree)) { changeDiveGeoPosition(lon, lat, GeoDataCoordinates::Degree); |