┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemmodelbase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kitemmodelbase.cpp')
-rw-r--r--src/kitemviews/kitemmodelbase.cpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/kitemviews/kitemmodelbase.cpp b/src/kitemviews/kitemmodelbase.cpp
index 82e491220..a4f7b0890 100644
--- a/src/kitemviews/kitemmodelbase.cpp
+++ b/src/kitemviews/kitemmodelbase.cpp
@@ -50,13 +50,41 @@ bool KItemModelBase::groupedSorting() const
void KItemModelBase::setSortRole(const QByteArray &role, bool resortItems)
{
if (role != m_sortRole) {
- const QByteArray previous = m_sortRole;
+ const QByteArray previousSortRole = m_sortRole;
m_sortRole = role;
- onSortRoleChanged(role, previous, resortItems);
- Q_EMIT sortRoleChanged(role, previous);
+ onSortRoleChanged(role, previousSortRole, resortItems);
+ Q_EMIT sortRoleChanged(role, previousSortRole);
+
+ if (m_groupRole.isEmpty()) {
+ onGroupRoleChanged(role, previousSortRole, false);
+ Q_EMIT groupRoleChanged(role, previousSortRole);
+ }
+ }
+}
+
+void KItemModelBase::setGroupRole(const QByteArray &role)
+{
+ if (role != m_groupRole) {
+ const QByteArray previousEffective = groupRole();
+ m_groupRole = role;
+ const QByteArray currentEffective = groupRole();
+ if (currentEffective != previousEffective) {
+ onGroupRoleChanged(currentEffective, previousEffective);
+ Q_EMIT groupRoleChanged(currentEffective, previousEffective);
+ }
}
}
+QByteArray KItemModelBase::groupRole() const
+{
+ return m_groupRole.isEmpty() ? m_sortRole : m_groupRole;
+}
+
+QByteArray KItemModelBase::rawGroupRole() const
+{
+ return m_groupRole;
+}
+
QByteArray KItemModelBase::sortRole() const
{
return m_sortRole;
@@ -149,6 +177,13 @@ void KItemModelBase::onSortRoleChanged(const QByteArray &current, const QByteArr
Q_UNUSED(resortItems)
}
+void KItemModelBase::onGroupRoleChanged(const QByteArray &current, const QByteArray &previous, bool resortItems)
+{
+ Q_UNUSED(current)
+ Q_UNUSED(previous)
+ Q_UNUSED(resortItems)
+}
+
void KItemModelBase::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
{
Q_UNUSED(current)