summaryrefslogtreecommitdiffstats
path: root/qt-models/filtermodels.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/filtermodels.cpp')
-rw-r--r--qt-models/filtermodels.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/qt-models/filtermodels.cpp b/qt-models/filtermodels.cpp
index 26759571a..0dece6f8f 100644
--- a/qt-models/filtermodels.cpp
+++ b/qt-models/filtermodels.cpp
@@ -100,6 +100,21 @@ void FilterModelBase::clearFilter()
emit dataChanged(createIndex(0,0), createIndex(rowCount()-1, 0));
}
+void FilterModelBase::selectAll()
+{
+ std::fill(checkState.begin(), checkState.end(), true);
+ anyChecked = true;
+ emit dataChanged(createIndex(0,0), createIndex(rowCount()-1, 0));
+}
+
+void FilterModelBase::invertSelection()
+{
+ for (char &b: checkState)
+ b = !b;
+ anyChecked = std::any_of(checkState.begin(), checkState.end(), [](char b){return !!b;});
+ emit dataChanged(createIndex(0,0), createIndex(rowCount()-1, 0));
+}
+
SuitsFilterModel::SuitsFilterModel(QObject *parent) : FilterModelBase(parent)
{
}