diff --git a/panels/dock/taskmanager/rolegroupmodel.cpp b/panels/dock/taskmanager/rolegroupmodel.cpp index 8a6848c97..6ae68d032 100644 --- a/panels/dock/taskmanager/rolegroupmodel.cpp +++ b/panels/dock/taskmanager/rolegroupmodel.cpp @@ -210,6 +210,25 @@ QVariant RoleGroupModel::data(const QModelIndex &index, int role) const } } +QMap RoleGroupModel::itemData(const QModelIndex &index) const +{ + QMap roles; + for (int i = 0; i < Qt::UserRole; ++i) { + const QVariant value = data(index, i); + if (value.isValid()) + roles.insert(i, value); + } + + const auto names = roleNames(); + for (auto it = names.cbegin(); it != names.cend(); ++it) { + const QVariant value = data(index, it.key()); + if (value.isValid()) + roles.insert(it.key(), value); + } + + return roles; +} + QModelIndex RoleGroupModel::index(int row, int column, const QModelIndex &parent) const { if (parent.isValid()) { diff --git a/panels/dock/taskmanager/rolegroupmodel.h b/panels/dock/taskmanager/rolegroupmodel.h index e0933e8dd..3feca64cd 100644 --- a/panels/dock/taskmanager/rolegroupmodel.h +++ b/panels/dock/taskmanager/rolegroupmodel.h @@ -22,6 +22,7 @@ class RoleGroupModel : public QAbstractProxyModel int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + QMap itemData(const QModelIndex &index) const override; bool hasChildren(const QModelIndex &parent = QModelIndex()) const override; bool hasIndex(int row, int column, const QModelIndex &parent = QModelIndex()) const;