From 4363e3e9e471ac4943f0db6631ac15d875669bd6 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 3 Jul 2015 08:33:09 +0200 Subject: [PATCH] TreeModel: Remove TreeItem::setModel from interface This should not be accessible to client code, as the property is effectively managed by the owning model and manually changing it on an item breaks that. Change-Id: Ie04451be3c0e51e7c796dcd64d400600f035fa08 Reviewed-by: Christian Stenger --- src/libs/utils/treemodel.cpp | 14 ++++---------- src/libs/utils/treemodel.h | 1 - 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index 424bc49a246..4a34181d2b5 100644 --- a/src/libs/utils/treemodel.cpp +++ b/src/libs/utils/treemodel.cpp @@ -770,15 +770,6 @@ QModelIndex TreeItem::index() const return m_model->indexForItem(this); } -void TreeItem::setModel(TreeModel *model) -{ - if (m_model == model) - return; - m_model = model; - foreach (TreeItem *item, m_children) - item->setModel(model); -} - void TreeItem::walkTree(TreeItemVisitor *visitor) { if (visitor->preVisit(this)) { @@ -972,6 +963,9 @@ int TreeModel::topLevelItemCount() const void TreeModel::setRootItem(TreeItem *item) { + QTC_ASSERT(item, return); + QTC_ASSERT(item->m_model == 0, return); + QTC_ASSERT(item->m_parent == 0, return); QTC_CHECK(m_root); if (m_root) { QTC_CHECK(m_root->m_parent == 0); @@ -980,7 +974,7 @@ void TreeModel::setRootItem(TreeItem *item) delete m_root; } m_root = item; - item->setModel(this); + item->propagateModel(this); emit layoutChanged(); } diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index e33be6ec785..c151fe1509d 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -101,7 +101,6 @@ public: QModelIndex index() const; TreeModel *model() const { return m_model; } - void setModel(TreeModel *model); void walkTree(TreeItemVisitor *visitor); void walkTree(std::function f);