summaryrefslogtreecommitdiffstats
path: root/map-widget/qmlmapwidgethelper.h
diff options
context:
space:
mode:
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