From 2d7b6692d3647c643d6feee2e8585f3a060b4b24 Mon Sep 17 00:00:00 2001 From: Eike Hein Date: Wed, 8 Jun 2016 20:17:50 +0900 Subject: [PATCH] Add missing hasChildren() implementation. Summary: QAbstractProxyModel forwards hasChildren() to the source model, which will return a wrong value for our tree-restructuring model. Current views/proxies don't call hasChildren(), which is how this oversight happened, but implementing it improves model hygiene - could blow up in the future otherwise. Reviewers: #plasma Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D1799 --- libtaskmanager/taskgroupingproxymodel.cpp | 9 +++++++++ libtaskmanager/taskgroupingproxymodel.h | 1 + 2 files changed, 10 insertions(+) diff --git a/libtaskmanager/taskgroupingproxymodel.cpp b/libtaskmanager/taskgroupingproxymodel.cpp index 3c13b0c1e..67a50dfe2 100644 --- a/libtaskmanager/taskgroupingproxymodel.cpp +++ b/libtaskmanager/taskgroupingproxymodel.cpp @@ -599,6 +599,15 @@ int TaskGroupingProxyModel::rowCount(const QModelIndex &parent) const return d->rowMap.count(); } +bool TaskGroupingProxyModel::hasChildren(const QModelIndex &parent) const +{ + if ((parent.model() && parent.model() != this) || !sourceModel()) { + return false; + } + + return rowCount(parent); +} + int TaskGroupingProxyModel::columnCount(const QModelIndex &parent) const { Q_UNUSED(parent) diff --git a/libtaskmanager/taskgroupingproxymodel.h b/libtaskmanager/taskgroupingproxymodel.h index 89e6bebfd..73e5b150d 100644 --- a/libtaskmanager/taskgroupingproxymodel.h +++ b/libtaskmanager/taskgroupingproxymodel.h @@ -62,6 +62,7 @@ public: QModelIndex mapToSource(const QModelIndex &proxyIndex) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; + bool hasChildren(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &proxyIndex, int role) const override;