summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKai Uwe Broulik <kde@privat.broulik.de>2019-11-22 11:01:23 +0100
committerKai Uwe Broulik <kde@privat.broulik.de>2019-11-22 19:45:18 +0100
commit935681eaca1229f100e54f7447be0e23ceba684b (patch)
tree786bc8adc1584a7488f4e0116340e05ed08fda22 /src
parent5142fe2c54970040fb6967848156a5f28b5a2dc9 (diff)
QSortFilterProxyModel: Add change signals for properties
Makes it more easily consumable from QML. This patch only adds them for properties where no behavior change (i.e. no "if (m_foo == foo) return" changes) is necessary. The other ones will be done in a follow-up patch. Change-Id: If9f35cf9ac382e6f626db138a88eb14cebda1d52 Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/itemmodels/qsortfilterproxymodel.cpp6
-rw-r--r--src/corelib/itemmodels/qsortfilterproxymodel.h22
2 files changed, 22 insertions, 6 deletions
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
index 978102035e..21303549ab 100644
--- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp
+++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
@@ -2682,6 +2682,7 @@ void QSortFilterProxyModel::setFilterCaseSensitivity(Qt::CaseSensitivity cs)
d->filter_about_to_be_changed();
d->filter_data.setCaseSensitivity(cs);
d->filter_changed();
+ emit filterCaseSensitivityChanged(cs);
}
/*!
@@ -2707,6 +2708,7 @@ void QSortFilterProxyModel::setSortCaseSensitivity(Qt::CaseSensitivity cs)
d->sort_casesensitivity = cs;
d->sort();
+ emit sortCaseSensitivityChanged(cs);
}
/*!
@@ -2732,6 +2734,7 @@ void QSortFilterProxyModel::setSortLocaleAware(bool on)
d->sort_localeaware = on;
d->sort();
+ emit sortLocaleAwareChanged(on);
}
/*!
@@ -2856,6 +2859,7 @@ void QSortFilterProxyModel::setSortRole(int role)
return;
d->sort_role = role;
d->sort();
+ emit sortRoleChanged(role);
}
/*!
@@ -2881,6 +2885,7 @@ void QSortFilterProxyModel::setFilterRole(int role)
d->filter_about_to_be_changed();
d->filter_role = role;
d->filter_changed();
+ emit filterRoleChanged(role);
}
/*!
@@ -2907,6 +2912,7 @@ void QSortFilterProxyModel::setRecursiveFilteringEnabled(bool recursive)
d->filter_about_to_be_changed();
d->filter_recursive = recursive;
d->filter_changed();
+ emit recursiveFilteringEnabledChanged(recursive);
}
#if QT_DEPRECATED_SINCE(5, 11)
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.h b/src/corelib/itemmodels/qsortfilterproxymodel.h
index 303226668f..91253dd601 100644
--- a/src/corelib/itemmodels/qsortfilterproxymodel.h
+++ b/src/corelib/itemmodels/qsortfilterproxymodel.h
@@ -68,12 +68,12 @@ class Q_CORE_EXPORT QSortFilterProxyModel : public QAbstractProxyModel
#endif
Q_PROPERTY(int filterKeyColumn READ filterKeyColumn WRITE setFilterKeyColumn)
Q_PROPERTY(bool dynamicSortFilter READ dynamicSortFilter WRITE setDynamicSortFilter)
- Q_PROPERTY(Qt::CaseSensitivity filterCaseSensitivity READ filterCaseSensitivity WRITE setFilterCaseSensitivity)
- Q_PROPERTY(Qt::CaseSensitivity sortCaseSensitivity READ sortCaseSensitivity WRITE setSortCaseSensitivity)
- Q_PROPERTY(bool isSortLocaleAware READ isSortLocaleAware WRITE setSortLocaleAware)
- Q_PROPERTY(int sortRole READ sortRole WRITE setSortRole)
- Q_PROPERTY(int filterRole READ filterRole WRITE setFilterRole)
- Q_PROPERTY(bool recursiveFilteringEnabled READ isRecursiveFilteringEnabled WRITE setRecursiveFilteringEnabled)
+ Q_PROPERTY(Qt::CaseSensitivity filterCaseSensitivity READ filterCaseSensitivity WRITE setFilterCaseSensitivity NOTIFY filterCaseSensitivityChanged)
+ Q_PROPERTY(Qt::CaseSensitivity sortCaseSensitivity READ sortCaseSensitivity WRITE setSortCaseSensitivity NOTIFY sortCaseSensitivityChanged)
+ Q_PROPERTY(bool isSortLocaleAware READ isSortLocaleAware WRITE setSortLocaleAware NOTIFY sortLocaleAwareChanged)
+ Q_PROPERTY(int sortRole READ sortRole WRITE setSortRole NOTIFY sortRoleChanged)
+ Q_PROPERTY(int filterRole READ filterRole WRITE setFilterRole NOTIFY filterRoleChanged)
+ Q_PROPERTY(bool recursiveFilteringEnabled READ isRecursiveFilteringEnabled WRITE setRecursiveFilteringEnabled NOTIFY recursiveFilteringEnabledChanged)
public:
explicit QSortFilterProxyModel(QObject *parent = nullptr);
@@ -185,6 +185,16 @@ public:
QStringList mimeTypes() const override;
Qt::DropActions supportedDropActions() const override;
+
+Q_SIGNALS:
+ void dynamicSortFilterChanged(bool dynamicSortFilter);
+ void filterCaseSensitivityChanged(Qt::CaseSensitivity filterCaseSensitivity);
+ void sortCaseSensitivityChanged(Qt::CaseSensitivity sortCaseSensitivity);
+ void sortLocaleAwareChanged(bool sortLocaleAware);
+ void sortRoleChanged(int sortRole);
+ void filterRoleChanged(int filterRole);
+ void recursiveFilteringEnabledChanged(bool recursiveFilteringEnabled);
+
private:
Q_DECLARE_PRIVATE(QSortFilterProxyModel)
Q_DISABLE_COPY(QSortFilterProxyModel)