aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/treemodel.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-08-02 17:02:02 +0200
committerTobias Hunger <tobias.hunger@qt.io>2017-08-04 13:34:13 +0000
commitea867cd49a113aa802ad007db784c50b16475377 (patch)
treec4102ca02795d201e65bf02267c4bd9375d5f062 /src/libs/utils/treemodel.cpp
parente50f882f0f960bb3cff99a74a3b04dc11f02354e (diff)
ProjectExplorer: Add option to hide empty directories from project tree
Together with the earlier fix for hiding generated files, this change makes for a very clean CMake server-mode project tree:-) Change-Id: Ib70fd66699eddf5d6e602f3f8848b31fd6d85b57 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/libs/utils/treemodel.cpp')
-rw-r--r--src/libs/utils/treemodel.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp
index 19f3fc72c48..b4684eedfe1 100644
--- a/src/libs/utils/treemodel.cpp
+++ b/src/libs/utils/treemodel.cpp
@@ -689,6 +689,20 @@ void TreeItem::insertChild(int pos, TreeItem *item)
}
}
+void TreeItem::removeChildAt(int pos)
+{
+ QTC_ASSERT(0 <= pos && pos < m_children.count(), return);
+
+ if (m_model) {
+ QModelIndex idx = index();
+ m_model->beginRemoveRows(idx, pos, pos);
+ removeItemAt(pos);
+ m_model->endRemoveRows();
+ } else {
+ removeItemAt(pos);
+ }
+}
+
void TreeItem::removeChildren()
{
if (childCount() == 0)
@@ -863,6 +877,15 @@ void TreeItem::clear()
}
}
+void TreeItem::removeItemAt(int pos)
+{
+ TreeItem *item = m_children.at(pos);
+ item->m_model = nullptr;
+ item->m_parent = nullptr;
+ delete item;
+ m_children.removeAt(pos);
+}
+
void TreeItem::expand()
{
QTC_ASSERT(m_model, return);