summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/globe.cpp23
-rw-r--r--qt-ui/mainwindow.cpp1
2 files changed, 16 insertions, 8 deletions
diff --git a/qt-ui/globe.cpp b/qt-ui/globe.cpp
index 60249c852..c6e997c12 100644
--- a/qt-ui/globe.cpp
+++ b/qt-ui/globe.cpp
@@ -16,6 +16,8 @@
#include <marble/MarbleModel.h>
#include <marble/MarbleDirs.h>
#include <marble/MapThemeManager.h>
+#include <marble/GeoDataStyle.h>
+#include <marble/GeoDataIconStyle.h>
#ifdef MARBLE_SUBSURFACE_BRANCH
#include <marble/MarbleDebug.h>
@@ -188,6 +190,8 @@ void GlobeGPS::mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit unit)
void GlobeGPS::repopulateLabels()
{
+ static GeoDataStyle otherSite, currentSite;
+ static GeoDataIconStyle darkFlag(QImage(":flagDark")), lightFlag(QImage(":flagLight"));
struct dive_site *ds;
int idx;
QMap<QString, GeoDataPlacemark *> locationMap;
@@ -196,12 +200,23 @@ void GlobeGPS::repopulateLabels()
delete loadedDives;
}
loadedDives = new GeoDataDocument;
+ otherSite.setIconStyle(darkFlag);
+ currentSite.setIconStyle(lightFlag);
+ if (displayed_dive_site.uuid && dive_site_has_gps_location(&displayed_dive_site)) {
+ GeoDataPlacemark *place = new GeoDataPlacemark(displayed_dive_site.name);
+ place->setStyle(&currentSite);
+ place->setCoordinate(displayed_dive_site.longitude.udeg / 1000000.0,
+ displayed_dive_site.latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
+ locationMap[QString(displayed_dive_site.name)] = place;
+ loadedDives->append(place);
+ }
for_each_dive_site(idx, ds) {
if (ds->uuid == displayed_dive_site.uuid)
continue;
if (dive_site_has_gps_location(ds)) {
GeoDataPlacemark *place = new GeoDataPlacemark(ds->name);
+ place->setStyle(&otherSite);
place->setCoordinate(ds->longitude.udeg / 1000000.0, ds->latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
// don't add dive locations twice, unless they are at least 50m apart
@@ -221,14 +236,6 @@ void GlobeGPS::repopulateLabels()
loadedDives->append(place);
}
}
-
- if (displayed_dive_site.uuid && dive_site_has_gps_location(&displayed_dive_site)) {
- GeoDataPlacemark *place = new GeoDataPlacemark(displayed_dive_site.name);
- place->setCoordinate(displayed_dive_site.longitude.udeg / 1000000.0,
- displayed_dive_site.latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
- locationMap[QString(displayed_dive_site.name)] = place;
- loadedDives->append(place);
- }
model()->treeModel()->addDocument(loadedDives);
struct dive_site *center = displayed_dive_site.uuid != 0 ?
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 0b8ba1f76..55ef51440 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -264,6 +264,7 @@ void MainWindow::current_dive_changed(int divenr)
}
graphics()->plotDive();
information()->updateDiveInfo();
+ globe()->reload();
}
void MainWindow::on_actionNew_triggered()