From 9ae7040a91c3e3e0606d7abe085ef6da47efd6d2 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 27 Sep 2019 16:26:54 -0700 Subject: Revert the singleton PR It turns out that this isn't working the way it was intended to. Signed-off-by: Dirk Hohndel --- qt-models/divelistmodel.cpp | 8 ++++++++ qt-models/divelistmodel.h | 6 ++++-- qt-models/gpslistmodel.cpp | 12 +++++++++++- qt-models/gpslistmodel.h | 8 +++++--- 4 files changed, 28 insertions(+), 6 deletions(-) (limited to 'qt-models') 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 #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 +class DiveListModel : public QAbstractListModel { Q_OBJECT public: @@ -46,6 +45,7 @@ public: DepthDurationRole, }; + static DiveListModel *instance(); DiveListModel(QObject *parent = 0); void addDive(const QList &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 +GpsListModel *GpsListModel::m_instance = NULL; + GpsListModel::GpsListModel(QObject *parent) : QAbstractListModel(parent) { + m_instance = this; } -void GpsListModel::update(QVector trackers) +void GpsListModel::update() { + QVector trackers = QVector::fromList(GpsLocation::instance()->currentGPSInfo().values()); beginResetModel(); m_gpsFixes = trackers; endResetModel(); @@ -58,3 +62,9 @@ QHash 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 #include -class GpsListModel : public QAbstractListModel, public SillySingleton +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 roleNames() const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - void update(QVector trackers); + void update(); private: QVector m_gpsFixes; + static GpsListModel *m_instance; }; #endif // GPSLISTMODEL_H -- cgit v1.2.3-70-g09d2