From 982d38a1c0600613838ff92ca712fd92ae394503 Mon Sep 17 00:00:00 2001 From: Wang Zichong Date: Fri, 7 Aug 2026 17:09:32 +0800 Subject: [PATCH] chore: add itemData implementation for RoleGroupModel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为 RoleGroupModel 补充 itemData() 实现. 这可以使调试 RoleGroupModel 时看到的信息稍佳清晰. Log: --- panels/dock/taskmanager/rolegroupmodel.cpp | 19 +++++++++++++++++++ panels/dock/taskmanager/rolegroupmodel.h | 1 + 2 files changed, 20 insertions(+) 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;