diff options
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/divelistmodel.cpp | 8 | ||||
-rw-r--r-- | qt-models/divelistmodel.h | 6 | ||||
-rw-r--r-- | qt-models/gpslistmodel.cpp | 12 | ||||
-rw-r--r-- | qt-models/gpslistmodel.h | 8 |
4 files changed, 28 insertions, 6 deletions
diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index e2fddbf83..779e695ab 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -134,8 +134,11 @@ QString DiveListSortModel::tripShortDate(const QString §ion) return QStringLiteral("%1\n'%2").arg(firstMonth,firstTime.toString("yy")); } +DiveListModel *DiveListModel::m_instance = NULL; + DiveListModel::DiveListModel(QObject *parent) : QAbstractListModel(parent) { + m_instance = this; } void DiveListModel::insertDive(int i) @@ -271,6 +274,11 @@ QString DiveListModel::startAddDive() return QString::number(d->id); } +DiveListModel *DiveListModel::instance() +{ + return m_instance; +} + struct dive *DiveListModel::getDive(int i) { if (i < 0 || i >= dive_table.nr) { diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index cccece51d..d6eb07463 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -6,7 +6,6 @@ #include <QSortFilterProxyModel> #include "core/subsurface-qt/DiveObjectHelper.h" -#include "core/singleton.h" class DiveListSortModel : public QSortFilterProxyModel { @@ -29,7 +28,7 @@ private: void updateFilterState(); }; -class DiveListModel : public QAbstractListModel, public SillySingleton<DiveListModel> +class DiveListModel : public QAbstractListModel { Q_OBJECT public: @@ -46,6 +45,7 @@ public: DepthDurationRole, }; + static DiveListModel *instance(); DiveListModel(QObject *parent = 0); void addDive(const QList<dive *> &listOfDives); void addAllDives(); @@ -63,6 +63,8 @@ public: QString startAddDive(); void resetInternalData(); Q_INVOKABLE DiveObjectHelper at(int i); +private: + static DiveListModel *m_instance; }; #endif // DIVELISTMODEL_H diff --git a/qt-models/gpslistmodel.cpp b/qt-models/gpslistmodel.cpp index 7849561d3..8d874d67b 100644 --- a/qt-models/gpslistmodel.cpp +++ b/qt-models/gpslistmodel.cpp @@ -3,12 +3,16 @@ #include "core/qthelper.h" #include <QVector> +GpsListModel *GpsListModel::m_instance = NULL; + GpsListModel::GpsListModel(QObject *parent) : QAbstractListModel(parent) { + m_instance = this; } -void GpsListModel::update(QVector<gpsTracker> trackers) +void GpsListModel::update() { + QVector<gpsTracker> trackers = QVector<gpsTracker>::fromList(GpsLocation::instance()->currentGPSInfo().values()); beginResetModel(); m_gpsFixes = trackers; endResetModel(); @@ -58,3 +62,9 @@ QHash<int, QByteArray> GpsListModel::roleNames() const roles[GpsLongitudeRole] = "longitude"; return roles; } + +GpsListModel *GpsListModel::instance() +{ + return m_instance; +} + diff --git a/qt-models/gpslistmodel.h b/qt-models/gpslistmodel.h index a49855a4d..a1c82e5d6 100644 --- a/qt-models/gpslistmodel.h +++ b/qt-models/gpslistmodel.h @@ -3,10 +3,10 @@ #define GPSLISTMODEL_H #include "core/gpslocation.h" -#include "core/singleton.h" +#include <QObject> #include <QAbstractListModel> -class GpsListModel : public QAbstractListModel, public SillySingleton<GpsListModel> +class GpsListModel : public QAbstractListModel { Q_OBJECT public: @@ -19,14 +19,16 @@ public: GpsWhenRole }; + static GpsListModel *instance(); GpsListModel(QObject *parent = 0); void clear(); int rowCount(const QModelIndex &parent = QModelIndex()) const; QHash<int, QByteArray> roleNames() const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - void update(QVector<gpsTracker> trackers); + void update(); private: QVector<gpsTracker> m_gpsFixes; + static GpsListModel *m_instance; }; #endif // GPSLISTMODEL_H |