summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-09-28 23:31:40 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-10-04 09:19:10 -0700
commit3db50aedeaea94b7395fe6fcdb56bda9bee2f2cb (patch)
treeff4de197788d1122bba31f8d5cea67357a6ff3df /qt-models
parent2a9a3dda20c47e74746fbfa3c6e5fd9ee919b2b3 (diff)
downloadsubsurface-3db50aedeaea94b7395fe6fcdb56bda9bee2f2cb.tar.gz
Cleanup: Turn DiveListSortModel into classical singleton
To make this class available from QMLManager, the run_ui() function would create the object and then set a pointer in QMLManager. It works, but is inconsistent with the rest of the code. Therefore, make it a classical singleton class, which is generated on demand. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/divelistmodel.cpp8
-rw-r--r--qt-models/divelistmodel.h3
2 files changed, 9 insertions, 2 deletions
diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp
index 6d94b09c9..d3c4e3ce2 100644
--- a/qt-models/divelistmodel.cpp
+++ b/qt-models/divelistmodel.cpp
@@ -6,7 +6,7 @@
#include "core/ssrf.h" // for LOG_STP
#include <QDateTime>
-DiveListSortModel::DiveListSortModel(QObject *parent) : QSortFilterProxyModel(parent)
+DiveListSortModel::DiveListSortModel()
{
setSourceModel(DiveListModel::instance());
setDynamicSortFilter(true);
@@ -16,6 +16,12 @@ DiveListSortModel::DiveListSortModel(QObject *parent) : QSortFilterProxyModel(pa
LOG_STP("run_ui diveListModel sorted");
}
+DiveListSortModel *DiveListSortModel::instance()
+{
+ static DiveListSortModel self;
+ return &self;
+}
+
void DiveListSortModel::updateFilterState()
{
if (filterString.isEmpty()) {
diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h
index 87c5bb254..e7fb5369c 100644
--- a/qt-models/divelistmodel.h
+++ b/qt-models/divelistmodel.h
@@ -11,7 +11,8 @@ class DiveListSortModel : public QSortFilterProxyModel
{
Q_OBJECT
public:
- DiveListSortModel(QObject *parent = 0);
+ DiveListSortModel();
+ static DiveListSortModel *instance();
void setSourceModel(QAbstractItemModel *sourceModel);
Q_INVOKABLE void reload();
Q_INVOKABLE QString tripTitle(const QString &trip);