forked from qt-creator/qt-creator
Debugger: Use Utils::TreeModel for watch window
The circle closes, that's where the code came from. Change-Id: Ic36ab61ec8886c9a2747aeb29a7245df3ef0b6c4 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
@@ -671,6 +671,11 @@ Qt::ItemFlags TreeItem::flags(int column) const
|
||||
return m_flags;
|
||||
}
|
||||
|
||||
bool TreeItem::hasChildren() const
|
||||
{
|
||||
return canFetchMore() || rowCount() > 0;
|
||||
}
|
||||
|
||||
bool TreeItem::canFetchMore() const
|
||||
{
|
||||
return false;
|
||||
@@ -769,6 +774,22 @@ void TreeItem::setModel(TreeModel *model)
|
||||
item->setModel(model);
|
||||
}
|
||||
|
||||
void TreeItem::walkTree(TreeItemVisitor *visitor)
|
||||
{
|
||||
if (visitor->preVisit(this)) {
|
||||
visitor->visit(this);
|
||||
foreach (TreeItem *item, m_children)
|
||||
item->walkTree(visitor);
|
||||
}
|
||||
}
|
||||
|
||||
void TreeItem::walkTree(std::function<void (TreeItem *)> f)
|
||||
{
|
||||
f(this);
|
||||
foreach (TreeItem *item, m_children)
|
||||
item->walkTree(f);
|
||||
}
|
||||
|
||||
void TreeItem::clear()
|
||||
{
|
||||
while (m_children.size()) {
|
||||
@@ -898,6 +919,12 @@ QVariant TreeModel::headerData(int section, Qt::Orientation orientation,
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
bool TreeModel::hasChildren(const QModelIndex &idx) const
|
||||
{
|
||||
TreeItem *item = itemFromIndex(idx);
|
||||
return !item || item->hasChildren();
|
||||
}
|
||||
|
||||
Qt::ItemFlags TreeModel::flags(const QModelIndex &idx) const
|
||||
{
|
||||
if (!idx.isValid())
|
||||
@@ -929,6 +956,13 @@ TreeItem *TreeModel::rootItem() const
|
||||
return m_root;
|
||||
}
|
||||
|
||||
void TreeModel::setRootItem(TreeItem *item)
|
||||
{
|
||||
delete m_root;
|
||||
m_root = item;
|
||||
item->setModel(this);
|
||||
}
|
||||
|
||||
void TreeModel::setHeader(const QStringList &displays)
|
||||
{
|
||||
m_header = displays;
|
||||
|
||||
Reference in New Issue
Block a user