summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2019-09-27 16:26:54 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-09-27 16:26:58 -0700
commit9ae7040a91c3e3e0606d7abe085ef6da47efd6d2 (patch)
treede120b115df95fb96d945581aca41cd8c760263c /qt-models
parent400b218f769320221567b7b66f39c33126a7d2e1 (diff)
downloadsubsurface-9ae7040a91c3e3e0606d7abe085ef6da47efd6d2.tar.gz
Revert the singleton PR
It turns out that this isn't working the way it was intended to. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/divelistmodel.cpp8
-rw-r--r--qt-models/divelistmodel.h6
-rw-r--r--qt-models/gpslistmodel.cpp12
-rw-r--r--qt-models/gpslistmodel.h8
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 &section)
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