┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kstandarditemmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kstandarditemmodel.cpp')
-rw-r--r--src/kitemviews/kstandarditemmodel.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/kitemviews/kstandarditemmodel.cpp b/src/kitemviews/kstandarditemmodel.cpp
index 86ef9563b..897267df6 100644
--- a/src/kitemviews/kstandarditemmodel.cpp
+++ b/src/kitemviews/kstandarditemmodel.cpp
@@ -123,7 +123,22 @@ QString KStandardItemModel::roleDescription(const QByteArray& role) const
QList<QPair<int, QVariant> > KStandardItemModel::groups() const
{
- return QList<QPair<int, QVariant> >();
+ QList<QPair<int, QVariant> > groups;
+
+ const QByteArray role = sortRole();
+ bool isFirstGroupValue = true;
+ QString groupValue;
+ const int maxIndex = count() - 1;
+ for (int i = 0; i <= maxIndex; ++i) {
+ const QString newGroupValue = m_items.at(i)->dataValue(role).toString();
+ if (newGroupValue != groupValue || isFirstGroupValue) {
+ groupValue = newGroupValue;
+ groups.append(QPair<int, QVariant>(i, newGroupValue));
+ isFirstGroupValue = false;
+ }
+ }
+
+ return groups;
}
#include "kstandarditemmodel.moc"