summaryrefslogtreecommitdiffstats
path: root/qt-ui/globe.cpp
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-11-19 04:23:59 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-11-19 04:28:15 -0800
commite8a4420c59300554ee29af29834b6dcde4f8139a (patch)
treea5e9698a537834937fe0eb02c69f643f35450da6 /qt-ui/globe.cpp
parent788671944346c75dcf3562e4703928bca9b26600 (diff)
downloadsubsurface-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.cpp20
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);