From d6114fc37e922c51341ea71cbcc58543d12f7a49 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 23 Feb 2020 20:18:13 +0100 Subject: mobile/filter: derive numShown from a new Q_PROPERTY The number of dives was updated when the model of the list was changed. Since we removed the multi-threading, the model is not disconnected/connected anymore and therefore we don't get the appropriate signal. Instead of introducing a different signal, make the shown-value a Q_PROPERTY. Thus, we can easily send a changed signal if we have to. Signed-off-by: Berthold Stoeger --- qt-models/divelistmodel.cpp | 1 + qt-models/divelistmodel.h | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'qt-models') diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index d1ae4093d..f79efe0ff 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -195,6 +195,7 @@ DiveListSortModel *DiveListSortModel::instance() void DiveListSortModel::updateFilterState() { DiveFilter::instance()->updateAll(); + emit shownChanged(); } void DiveListSortModel::setSourceModel(QAbstractItemModel *sourceModel) diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index b051605ae..110ee82ae 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -47,11 +47,14 @@ public: Q_INVOKABLE void reload(); QString filterString; void updateFilterState(); + Q_PROPERTY(int shown READ shown NOTIFY shownChanged); + int shown(); public slots: int getIdxForId(int id); void setFilter(QString f, FilterData::Mode mode); void resetFilter(); - int shown(); +signals: + void shownChanged(); protected: bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; private: -- cgit v1.2.3-70-g09d2