From 0cfd569038b9da6bdcd2112ee1e50e8420d5cd50 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 24 Jun 2016 08:36:13 +0200 Subject: [PATCH] TreeModel: Add an optional ParentType parameter for TypedTreeItem ... and use it to add a ParentType *parent() function. Also, de-virtualize the TreeModel::parent(), this flexibility has not been needed so far. Change-Id: I0bcf930a0d6b05d5621753a5a8a1f8c3e5017386 Reviewed-by: Christian Stenger Reviewed-by: Eike Ziller --- src/libs/utils/treemodel.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index ed2515dee33..eb56729431c 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -41,7 +41,7 @@ public: TreeItem(); virtual ~TreeItem(); - virtual TreeItem *parent() const { return m_parent; } + TreeItem *parent() const { return m_parent; } virtual TreeItem *child(int pos) const; virtual int rowCount() const; @@ -148,7 +148,7 @@ private: }; // A TreeItem with children all of the same type. -template +template class TypedTreeItem : public TreeItem { public: @@ -175,6 +175,10 @@ public: ChildType *findFirstLevelChild(Predicate pred) const { return TreeItem::findFirstLevelChild(pred); } + + ParentType *parent() const { + return static_cast(TreeItem::parent()); + } }; class QTCREATOR_UTILS_EXPORT StaticTreeItem : public TreeItem