diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index c0521c1499016fc2bfa9e8254c8af989a175f95d..4a1e897b4cf6e8d6b9e16a273b452647d78f810c 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 5707dfb3d7a7140b5bf8b95b94395b69578a5fc6..da5b2d717a59f97ba5fb299bc05e492a4ed120a5 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;