From 51959d0feb9fa560f388b4f1204f5028fb80f70d Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Thu, 28 May 2020 00:19:22 +0200 Subject: filter: connect DiveListNotifier signals to filter preset model Thus, the model is kept up to date if filter presets are changed by undo commands. Signed-off-by: Berthold Stoeger --- qt-models/filterpresetmodel.cpp | 21 +++++++++++++++++++++ qt-models/filterpresetmodel.h | 3 +++ 2 files changed, 24 insertions(+) diff --git a/qt-models/filterpresetmodel.cpp b/qt-models/filterpresetmodel.cpp index 446dd5e16..3853b4c34 100644 --- a/qt-models/filterpresetmodel.cpp +++ b/qt-models/filterpresetmodel.cpp @@ -9,6 +9,9 @@ FilterPresetModel::FilterPresetModel() { setHeaderDataStrings(QStringList{ "", tr("Name") }); connect(&diveListNotifier, &DiveListNotifier::dataReset, this, &FilterPresetModel::reset); + connect(&diveListNotifier, &DiveListNotifier::filterPresetAdded, this, &FilterPresetModel::filterPresetAdded); + connect(&diveListNotifier, &DiveListNotifier::filterPresetRemoved, this, &FilterPresetModel::filterPresetRemoved); + connect(&diveListNotifier, &DiveListNotifier::filterPresetChanged, this, &FilterPresetModel::filterPresetChanged); } FilterPresetModel::~FilterPresetModel() @@ -57,3 +60,21 @@ void FilterPresetModel::reset() beginResetModel(); endResetModel(); } + +void FilterPresetModel::filterPresetAdded(int index) +{ + beginInsertRows(QModelIndex(), index, index); + endInsertRows(); +} + +void FilterPresetModel::filterPresetChanged(int i) +{ + QModelIndex idx = index(i, 0); + dataChanged(idx, idx); +} + +void FilterPresetModel::filterPresetRemoved(int index) +{ + beginRemoveRows(QModelIndex(), index, index); + endRemoveRows(); +} diff --git a/qt-models/filterpresetmodel.h b/qt-models/filterpresetmodel.h index 26543666a..2c04456e0 100644 --- a/qt-models/filterpresetmodel.h +++ b/qt-models/filterpresetmodel.h @@ -16,6 +16,9 @@ public: private slots: void reset(); + void filterPresetAdded(int index); + void filterPresetChanged(int index); + void filterPresetRemoved(int index); public: // there is one global filter preset list, therefore this model is a singleton static FilterPresetModel *instance(); -- cgit v1.2.3-70-g09d2