summaryrefslogtreecommitdiffstats
path: root/map-widget/qmlmapwidgethelper.h
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-04 21:23:37 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-11-05 14:48:56 -0800
commit956b45ddfda060fcd818659ee05618ed2e4bfcab (patch)
tree1acb6ff91cba57e059e7eac8868ecd066539b230 /map-widget/qmlmapwidgethelper.h
parent6ce4239884780fafdf641fa52a2a8c7a0a02450d (diff)
downloadsubsurface-956b45ddfda060fcd818659ee05618ed2e4bfcab.tar.gz
map-widget: move the widget and its resources to 'map-widget'
Move all the map widget platform agnostic files to the <subsurface-root>/map-widget folder. This avoids the confusion about the desktop version of subsurface using mobile components. The map widget is planned as a shared component between the mobile and desktop versions. desktop-widgets/mapwidget[.h/.cpp] still remain as those are specific to the desktop version. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'map-widget/qmlmapwidgethelper.h')
-rw-r--r--map-widget/qmlmapwidgethelper.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/map-widget/qmlmapwidgethelper.h b/map-widget/qmlmapwidgethelper.h
new file mode 100644
index 000000000..36d25d178
--- /dev/null
+++ b/map-widget/qmlmapwidgethelper.h
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0
+#ifndef QMLMAPWIDGETHELPER_H
+#define QMLMAPWIDGETHELPER_H
+
+#include <QObject>
+
+class QGeoCoordinate;
+class MapLocationModel;
+class MapLocation;
+struct dive_site;
+
+class MapWidgetHelper : public QObject {
+
+ Q_OBJECT
+ Q_PROPERTY(QObject *map MEMBER m_map)
+ Q_PROPERTY(MapLocationModel *model MEMBER m_mapLocationModel NOTIFY modelChanged)
+ Q_PROPERTY(bool editMode READ editMode WRITE setEditMode NOTIFY editModeChanged)
+ Q_PROPERTY(QString pluginObject READ pluginObject NOTIFY pluginObjectChanged)
+
+public:
+ explicit MapWidgetHelper(QObject *parent = NULL);
+
+ void centerOnDiveSite(struct dive_site *);
+ void reloadMapLocations();
+ Q_INVOKABLE void copyToClipboardCoordinates(QGeoCoordinate coord, bool formatTraditional);
+ Q_INVOKABLE void calculateSmallCircleRadius(QGeoCoordinate coord);
+ Q_INVOKABLE void updateCurrentDiveSiteCoordinates(quint32 uuid, QGeoCoordinate coord);
+ Q_INVOKABLE void selectVisibleLocations();
+ bool editMode();
+ void setEditMode(bool editMode);
+ QString pluginObject();
+
+private:
+ QObject *m_map;
+ MapLocationModel *m_mapLocationModel;
+ qreal m_smallCircleRadius;
+ QList<int> m_selectedDiveIds;
+ bool m_editMode;
+
+private slots:
+ void selectedLocationChanged(MapLocation *);
+
+signals:
+ void modelChanged();
+ void editModeChanged();
+ void selectedDivesChanged(QList<int> list);
+ void coordinatesChanged();
+ void pluginObjectChanged();
+};
+
+extern "C" const char *printGPSCoords(int lat, int lon);
+
+#endif