From 13d35645be3d531212e3b55c96ed171bd80ccc12 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 27 Mar 2019 17:57:56 +0000 Subject: [PATCH] When clearing RDTreeWidgetItem don't remove children one-by-one --- qrenderdoc/Widgets/Extended/RDTreeWidget.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp b/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp index 81d621ff5..9561ad116 100644 --- a/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp +++ b/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp @@ -512,11 +512,13 @@ void RDTreeWidgetItem::clear() if(m_widget && !m_widget->m_clearing) m_widget->m_model->beginRemoveChildren(this, 0, childCount() - 1); - while(childCount() > 0) + QVector children; + m_children.swap(children); + + for(RDTreeWidgetItem *c : children) { - RDTreeWidgetItem *child = takeChild(0); - child->clear(); - delete child; + c->m_parent = NULL; + delete c; } if(m_widget && !m_widget->m_clearing)