diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2016-01-07 00:08:00 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-01-07 21:29:05 -0800 |
commit | a7f8a7574e1fa6fd2422d151a3d5e3fc94586d5b (patch) | |
tree | 034256176d0a28705e190d122d41a2aead2fc229 /qt-models/gpslistmodel.h | |
parent | 0f311020205563823c71cfb68a77d156b14d352a (diff) | |
download | subsurface-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.h | 57 |
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 |