summaryrefslogtreecommitdiffstats
path: root/qt-ui/globe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/globe.cpp')
-rw-r--r--qt-ui/globe.cpp45
1 files changed, 42 insertions, 3 deletions
diff --git a/qt-ui/globe.cpp b/qt-ui/globe.cpp
index 770e51b02..77fd8b3b6 100644
--- a/qt-ui/globe.cpp
+++ b/qt-ui/globe.cpp
@@ -1,16 +1,27 @@
#include "globe.h"
+#include "../dive.h"
+
+#include <QDebug>
+
#include <marble/AbstractFloatItem.h>
+#include <marble/GeoDataPlacemark.h>
+#include <marble/GeoDataDocument.h>
+#include <marble/MarbleModel.h>
+#include <marble/GeoDataTreeModel.h>
using namespace Marble;
-GlobeGPS::GlobeGPS(QWidget* parent) : MarbleWidget(parent)
+GlobeGPS::GlobeGPS(QWidget* parent) : MarbleWidget(parent), loadedDives(0)
{
setMapThemeId("earth/bluemarble/bluemarble.dgml");
setProjection( Marble::Spherical );
// Enable the cloud cover and enable the country borders
- setShowClouds( true );
- setShowBorders( true );
+ setShowClouds( false );
+ setShowBorders( false );
+ setShowPlaces( false );
+ setShowCrosshairs( false );
+ setShowGrid( false );
// Hide the FloatItems: Compass and StatusBar
setShowOverviewMap(false);
@@ -23,3 +34,31 @@ GlobeGPS::GlobeGPS(QWidget* parent) : MarbleWidget(parent)
}
}
}
+
+void GlobeGPS::reload()
+{
+ if (loadedDives){
+ model()->treeModel()->removeDocument(loadedDives);
+ delete loadedDives;
+ }
+
+
+ loadedDives = new GeoDataDocument;
+
+ int idx = 0;
+ struct dive *dive;
+ for_each_dive(idx, dive) {
+ if (dive_has_gps_location(dive)) {
+ GeoDataPlacemark *place = new GeoDataPlacemark( dive->location );
+ place->setDescription(dive->notes);
+ place->setCoordinate(dive->longitude.udeg / 1000000.0,dive->latitude.udeg / 1000000.0 , 0, GeoDataCoordinates::Degree );
+ loadedDives->append( place );
+ }
+ }
+ model()->treeModel()->addDocument( loadedDives );
+}
+
+void GlobeGPS::centerOn(dive* dive)
+{
+ centerOn(dive->longitude.udeg / 1000000.0,dive->latitude.udeg / 1000000.0);
+}