diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-07-15 23:34:44 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-07-28 07:31:11 -0700 |
commit | 4334d334134784722f6e1a86da0ce0f132293531 (patch) | |
tree | f73b9e594f6a78db5664f50e9624a7a515be1b87 | |
parent | 0d3d9c01ebfa2476b9568b425de3edc3a9f0a730 (diff) | |
download | subsurface-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.cpp | 10 | ||||
-rw-r--r-- | desktop-widgets/mapwidget.h | 1 |
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:
|