From 3d0537fa8a49d8850583e37e53dd3171cd733f17 Mon Sep 17 00:00:00 2001
From: hjk <hjk@theqtcompany.com>
Date: Fri, 9 Jan 2015 10:50:33 +0100
Subject: [PATCH] TreeModel: Add function to remove all children of an item

Just convenience.

Change-Id: Ieff2291ca63584cfa113a24cc2930adc3e764d08
Reviewed-by: hjk <hjk@theqtcompany.com>
---
 src/libs/utils/treemodel.cpp | 11 +++++++++++
 src/libs/utils/treemodel.h   |  1 +
 2 files changed, 12 insertions(+)

diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp
index c0521c14990..4a1e897b4cf 100644
--- a/src/libs/utils/treemodel.cpp
+++ b/src/libs/utils/treemodel.cpp
@@ -326,6 +326,17 @@ void TreeModel::removeItem(TreeItem *item)
     endRemoveRows();
 }
 
+void TreeModel::removeAllSubItems(TreeItem *item)
+{
+    QTC_ASSERT(item, return);
+    if (item->rowCount() == 0)
+        return;
+    QModelIndex idx = indexFromItem(item);
+    beginRemoveRows(idx, 0, item->rowCount() - 1);
+    item->clear();
+    endRemoveRows();
+}
+
 QModelIndex TreeModel::indexFromItemHelper(const TreeItem *needle,
     TreeItem *parentItem, const QModelIndex &parentIndex) const
 {
diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h
index 5707dfb3d7a..da5b2d717a5 100644
--- a/src/libs/utils/treemodel.h
+++ b/src/libs/utils/treemodel.h
@@ -177,6 +177,7 @@ public:
 
     void appendItem(TreeItem *parent, TreeItem *item);
     void removeItem(TreeItem *item); // item is not destroyed.
+    void removeAllSubItems(TreeItem *item); // item is not destroyed.
     void updateItem(TreeItem *item); // call to trigger dataChanged
 
     UntypedTreeLevelItems untypedLevelItems(int level = 0, TreeItem *start = 0) const;
-- 
GitLab