From 3db50aedeaea94b7395fe6fcdb56bda9bee2f2cb Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sat, 28 Sep 2019 23:31:40 +0200 Subject: 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 --- qt-models/divelistmodel.cpp | 8 +++++++- qt-models/divelistmodel.h | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'qt-models') 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 -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); -- cgit v1.2.3-70-g09d2