From a8ece5e9b0b92b36a4b513696afcc8ca6781e447 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 17 Dec 2014 13:15:08 +0100 Subject: [PATCH] TreeModel: Make root item configurable This is mainly used to communicate the number of columns and header contents. Change-Id: Ic3163265338d71f1fa8250e4765bb764e5784197 Reviewed-by: Christian Stenger --- src/libs/utils/treemodel.cpp | 14 ++++++++++++++ src/libs/utils/treemodel.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index f15741252a1..d27729d7509 100644 --- a/src/libs/utils/treemodel.cpp +++ b/src/libs/utils/treemodel.cpp @@ -198,6 +198,14 @@ QVariant TreeModel::data(const QModelIndex &idx, int role) const return item ? item->data(idx.column(), role) : QVariant(); } +QVariant TreeModel::headerData(int section, Qt::Orientation orientation, + int role) const +{ + if (orientation == Qt::Horizontal) + return m_root->data(section, role); + return QVariant(); +} + Qt::ItemFlags TreeModel::flags(const QModelIndex &idx) const { TreeItem *item = itemFromIndex(idx); @@ -210,6 +218,12 @@ TreeItem *TreeModel::rootItem() const return m_root; } +void TreeModel::setRootItem(TreeItem *item) +{ + delete m_root; + m_root = item; +} + QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) const { checkIndex(parent); diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index 934d1118473..e02335b2df2 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -87,8 +87,10 @@ public: QModelIndex index(int, int, const QModelIndex &idx) const; QModelIndex parent(const QModelIndex &idx) const; Qt::ItemFlags flags(const QModelIndex &idx) const; + QVariant headerData(int section, Qt::Orientation orientation, int role) const; TreeItem *rootItem() const; + void setRootItem(TreeItem *item); TreeItem *itemFromIndex(const QModelIndex &) const; QModelIndex indexFromItem(const TreeItem *needle) const;