summaryrefslogtreecommitdiffstats
path: root/qt-models/gpslistmodel.h
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-07 00:08:00 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-07 21:29:05 -0800
commita7f8a7574e1fa6fd2422d151a3d5e3fc94586d5b (patch)
tree034256176d0a28705e190d122d41a2aead2fc229 /qt-models/gpslistmodel.h
parent0f311020205563823c71cfb68a77d156b14d352a (diff)
downloadsubsurface-a7f8a7574e1fa6fd2422d151a3d5e3fc94586d5b.tar.gz
Create GpsListModel in order to be able to display GPS fixes
This will allow us to visualize the GPS fixes that are currently stored in the QML UI. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models/gpslistmodel.h')
-rw-r--r--qt-models/gpslistmodel.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/qt-models/gpslistmodel.h b/qt-models/gpslistmodel.h
new file mode 100644
index 000000000..35a5a03c4
--- /dev/null
+++ b/qt-models/gpslistmodel.h
@@ -0,0 +1,57 @@
+#ifndef GPSLISTMODEL_H
+#define GPSLISTMODEL_H
+
+#include "gpslocation.h"
+#include <QObject>
+#include <QAbstractListModel>
+
+class GpsTracker
+{
+private:
+ quint64 m_when;
+ qint32 m_latitude;
+ qint32 m_longitude;
+ QString m_name;
+
+public:
+ GpsTracker(struct gpsTracker *gt)
+ {
+ m_when = gt->when;
+ m_latitude = gt->latitude.udeg;
+ m_longitude = gt->longitude.udeg;
+ m_name = gt->name;
+ }
+ GpsTracker();
+ ~GpsTracker();
+ uint64_t when() const;
+ int32_t latitude() const;
+ int32_t longitude() const;
+ QString name() const;
+};
+
+class GpsListModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+
+ enum GpsListRoles {
+ GpsDateRole = Qt::UserRole + 1,
+ GpsNameRole,
+ GpsLatitudeRole,
+ GpsLongitudeRole
+ };
+
+ static GpsListModel *instance();
+ GpsListModel(QObject *parent = 0);
+ void addGpsFix(struct gpsTracker *g);
+ void clear();
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QHash<int, QByteArray> roleNames() const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+
+private:
+ QList<GpsTracker> m_gpsFixes;
+ static GpsListModel *m_instance;
+};
+
+#endif // GPSLISTMODEL_H