diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-11-04 21:23:37 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-11-05 14:48:56 -0800 |
commit | 956b45ddfda060fcd818659ee05618ed2e4bfcab (patch) | |
tree | 1acb6ff91cba57e059e7eac8868ecd066539b230 /map-widget/qmlmapwidgethelper.h | |
parent | 6ce4239884780fafdf641fa52a2a8c7a0a02450d (diff) | |
download | subsurface-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.h | 53 |
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 |