aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-07-15 23:34:44 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-28 07:31:11 -0700
commit4334d334134784722f6e1a86da0ce0f132293531 (patch)
treef73b9e594f6a78db5664f50e9624a7a515be1b87
parent0d3d9c01ebfa2476b9568b425de3edc3a9f0a730 (diff)
downloadsubsurface-4334d334134784722f6e1a86da0ce0f132293531.tar.gz
mapwidget: add the method centerOnIndex()
Again for the port from Marble, later can be removed / renamed. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
-rw-r--r--desktop-widgets/mapwidget.cpp10
-rw-r--r--desktop-widgets/mapwidget.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp
index 8753e1d98..c083c5f73 100644
--- a/desktop-widgets/mapwidget.cpp
+++ b/desktop-widgets/mapwidget.cpp
@@ -1,6 +1,7 @@
#include <QQmlContext>
#include <QDebug>
#include <QQuickItem>
+#include <QModelIndex>
#include "mapwidget.h"
#include "core/dive.h"
@@ -27,6 +28,15 @@ void MapWidget::centerOnDiveSite(struct dive_site *ds)
qDebug() << longitude << latitude;
}
+void MapWidget::centerOnIndex(const QModelIndex& idx)
+{
+ struct dive_site *ds = get_dive_site_by_uuid(idx.model()->index(idx.row(), 0).data().toInt());
+ if (!ds || !dive_site_has_gps_location(ds))
+ centerOnDiveSite(&displayed_dive_site);
+ else
+ centerOnDiveSite(ds);
+}
+
void MapWidget::reload()
{
// TODO;
diff --git a/desktop-widgets/mapwidget.h b/desktop-widgets/mapwidget.h
index 7a372f6ae..cdd117e8a 100644
--- a/desktop-widgets/mapwidget.h
+++ b/desktop-widgets/mapwidget.h
@@ -22,6 +22,7 @@ public:
public slots:
void centerOnDiveSite(struct dive_site *);
+ void centerOnIndex(const QModelIndex& idx);
void endGetDiveCoordinates();
private: