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 | |
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')
-rw-r--r-- | qt-ui/globe.cpp | 20 | ||||
-rw-r--r-- | qt-ui/globe.h | 1 |
2 files changed, 13 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); diff --git a/qt-ui/globe.h b/qt-ui/globe.h index b04ff9266..c44e9b591 100644 --- a/qt-ui/globe.h +++ b/qt-ui/globe.h @@ -17,6 +17,7 @@ public: using MarbleWidget::centerOn; GlobeGPS(QWidget *parent); void reload(); + void repopulateLabels(); void centerOn(struct dive* dive); void diveEditMode(); |