From e6069d8b032ba9fdb34f042ce4794f4eb3224a2e Mon Sep 17 00:00:00 2001 From: hjk <hjk@theqtcompany.com> Date: Wed, 6 Jul 2016 11:14:03 +0200 Subject: [PATCH] TreeModel: Introduce a recursive TreeItem::updateAll() function Useful in cases where e.g. siblings are affected (e.g. font changes to indicate active items). Change-Id: Ib2f8018688d00bd682bb6aaff08156f0be04f5dc Reviewed-by: Christian Stenger <christian.stenger@qt.io> --- src/libs/utils/treemodel.cpp | 10 ++++++++++ src/libs/utils/treemodel.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index bb629c94db7..33639fa9c3f 100644 --- a/src/libs/utils/treemodel.cpp +++ b/src/libs/utils/treemodel.cpp @@ -730,6 +730,16 @@ void TreeItem::update() } } +void TreeItem::updateAll() +{ + if (m_model) { + QModelIndex idx = index(); + m_model->dataChanged(idx, idx.sibling(idx.row(), m_model->m_columnCount - 1)); + foreach (TreeItem *item, m_children) + item->updateAll(); + } +} + void TreeItem::updateColumn(int column) { if (m_model) { diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index d0ec2617a40..3ddc070d41b 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -57,6 +57,7 @@ public: void removeChildren(); void sortChildren(const std::function<bool(const TreeItem *, const TreeItem *)> &cmp); void update(); + void updateAll(); void updateColumn(int column); void expand(); TreeItem *firstChild() const; -- GitLab