diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index dd297bb62c7..5c4296688c4 100644 --- a/src/libs/utils/treemodel.cpp +++ b/src/libs/utils/treemodel.cpp @@ -1049,6 +1049,11 @@ TreeItem *TreeModel::takeItem(TreeItem *item) return item; } +void TreeModel::destroyItem(TreeItem *item) +{ + delete takeItem(item); +} + StaticTreeItem::StaticTreeItem(const QStringList &displays) : m_displays(displays) { diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index eb56729431c..2a4efd0734f 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -230,6 +230,7 @@ public: void fetchMore(const QModelIndex &idx) override; TreeItem *takeItem(TreeItem *item); // item is not destroyed. + void destroyItem(TreeItem *item); // item is destroyed. signals: void requestExpansion(QModelIndex); diff --git a/src/plugins/autotest/testresultmodel.cpp b/src/plugins/autotest/testresultmodel.cpp index 12299e0b64a..b42ab5cd628 100644 --- a/src/plugins/autotest/testresultmodel.cpp +++ b/src/plugins/autotest/testresultmodel.cpp @@ -209,7 +209,7 @@ void TestResultModel::removeCurrentTestMessage() for (int row = topLevelItems.size() - 1; row >= 0; --row) { TestResultItem *current = static_cast(topLevelItems.at(row)); if (current->testResult()->result() == Result::MessageCurrentTest) { - delete takeItem(current); + destroyItem(current); break; } } diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index 11165ae0824..706f1331ce8 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -257,14 +257,14 @@ bool TestTreeModel::sweepChildren(TestTreeItem *item) TestTreeItem *child = item->childItem(row); if (child->parentItem()->type() != TestTreeItem::Root && child->markedForRemoval()) { - delete takeItem(child); + destroyItem(child); hasChanged = true; continue; } if (bool noEndNode = child->hasChildren()) { hasChanged |= sweepChildren(child); if (noEndNode && child->childCount() == 0) { - delete takeItem(child); + destroyItem(child); hasChanged = true; continue; } diff --git a/src/plugins/baremetal/gdbserverproviderssettingspage.cpp b/src/plugins/baremetal/gdbserverproviderssettingspage.cpp index ba4d5250e10..0d2fdd1d305 100644 --- a/src/plugins/baremetal/gdbserverproviderssettingspage.cpp +++ b/src/plugins/baremetal/gdbserverproviderssettingspage.cpp @@ -184,7 +184,7 @@ void GdbServerProviderModel::markForRemoval(GdbServerProvider *provider) { GdbServerProviderNode *n = findNode(provider); QTC_ASSERT(n, return); - delete takeItem(n); + destroyItem(n); if (m_providersToAdd.contains(provider)) { m_providersToAdd.removeOne(provider); @@ -233,7 +233,7 @@ void GdbServerProviderModel::removeProvider(GdbServerProvider *provider) { m_providersToRemove.removeAll(provider); if (GdbServerProviderNode *n = findNode(provider)) - delete takeItem(n); + destroyItem(n); emit providerStateChanged(); } diff --git a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp index ca133101140..8dadc022201 100644 --- a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp +++ b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp @@ -242,7 +242,7 @@ void CMakeToolItemModel::removeCMakeTool(const Core::Id &id) CMakeToolTreeItem *treeItem = cmakeToolItem(id); QTC_ASSERT(treeItem, return); - delete takeItem(treeItem); + destroyItem(treeItem); m_removedItems.append(id); } diff --git a/src/plugins/coreplugin/locator/locatorsettingspage.cpp b/src/plugins/coreplugin/locator/locatorsettingspage.cpp index bfb1a001bb5..076c67e3c64 100644 --- a/src/plugins/coreplugin/locator/locatorsettingspage.cpp +++ b/src/plugins/coreplugin/locator/locatorsettingspage.cpp @@ -359,7 +359,7 @@ void LocatorSettingsPage::removeCustomFilter() QTC_ASSERT(item, return); ILocatorFilter *filter = item->filter(); QTC_ASSERT(m_customFilters.contains(filter), return); - delete m_model->takeItem(item); + m_model->destroyItem(item); m_filters.removeAll(filter); m_customFilters.removeAll(filter); m_refreshFilters.removeAll(filter); diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index 823a750b91c..75248167983 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -348,7 +348,7 @@ void BreakHandler::deletionHelper(BreakpointModelId id) { Breakpoint b = breakpointById(id); QTC_ASSERT(b, return); - delete takeItem(b.b); + destroyItem(b.b); } Breakpoint BreakHandler::findWatchpoint(const BreakpointParameters ¶ms) const @@ -1169,7 +1169,7 @@ void BreakHandler::changeLineNumberFromMarkerHelper(BreakpointModelId id) Breakpoint b = breakpointById(id); QTC_ASSERT(b, return); BreakpointParameters params = b.parameters(); - delete takeItem(b.b); + destroyItem(b.b); appendBreakpoint(params); } diff --git a/src/plugins/debugger/debuggeroptionspage.cpp b/src/plugins/debugger/debuggeroptionspage.cpp index 6026e444f5d..359451bb3a8 100644 --- a/src/plugins/debugger/debuggeroptionspage.cpp +++ b/src/plugins/debugger/debuggeroptionspage.cpp @@ -169,7 +169,7 @@ void DebuggerItemModel::removeCurrentDebugger() QVariant id = m_currentTreeItem->m_item.id(); DebuggerTreeItem *treeItem = m_currentTreeItem; m_currentTreeItem = 0; - delete takeItem(treeItem); + destroyItem(treeItem); m_removedItems.append(id); } diff --git a/src/plugins/debugger/moduleshandler.cpp b/src/plugins/debugger/moduleshandler.cpp index e08a9045a4e..5e0edcd0083 100644 --- a/src/plugins/debugger/moduleshandler.cpp +++ b/src/plugins/debugger/moduleshandler.cpp @@ -207,7 +207,7 @@ Modules ModulesHandler::modules() const void ModulesHandler::removeModule(const QString &modulePath) { if (ModuleItem *item = moduleFromPath(m_model->rootItem(), modulePath)) - delete m_model->takeItem(item); + m_model->destroyItem(item); } void ModulesHandler::updateModule(const Module &module) @@ -249,7 +249,7 @@ void ModulesHandler::endUpdateAll() for (int i = root->rowCount(); --i >= 0; ) { auto item = static_cast(root->child(i)); if (!item->updated) - delete m_model->takeItem(item); + m_model->destroyItem(item); } } diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp index f387a9ae974..ce102d55f34 100644 --- a/src/plugins/debugger/threadshandler.cpp +++ b/src/plugins/debugger/threadshandler.cpp @@ -320,7 +320,7 @@ void ThreadsHandler::updateThread(const ThreadData &threadData) void ThreadsHandler::removeThread(ThreadId threadId) { if (ThreadItem *item = itemForThreadId(this, threadId)) - delete takeItem(item); + destroyItem(item); } void ThreadsHandler::setThreads(const Threads &threads) @@ -363,7 +363,7 @@ bool ThreadsHandler::notifyGroupExited(const QString &groupId) list.append(item); }); foreach (ThreadItem *item, list) - delete takeItem(item); + destroyItem(item); m_pidForGroupId.remove(groupId); return m_pidForGroupId.isEmpty(); diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index d52d4e6ed02..7c9b2676440 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1289,7 +1289,7 @@ bool WatchHandler::insertItem(WatchItem *item) const QVector siblings = parent->children(); for (int row = 0, n = siblings.size(); row < n; ++row) { if (static_cast(siblings.at(row))->iname == item->iname) { - delete m_model->takeItem(parent->children().at(row)); + m_model->destroyItem(parent->children().at(row)); parent->insertChild(row, item); found = true; break; @@ -1377,7 +1377,7 @@ void WatchHandler::notifyUpdateFinished() }); foreach (auto item, toRemove) - delete m_model->takeItem(item); + m_model->destroyItem(item); m_model->m_contentsValid = true; updateWatchersWindow(); @@ -1400,7 +1400,7 @@ void WatchHandler::removeItemByIName(const QString &iname) theWatcherNames.remove(item->exp); saveWatchers(); } - delete m_model->takeItem(item); + m_model->destroyItem(item); updateWatchersWindow(); } diff --git a/src/plugins/projectexplorer/kitmodel.cpp b/src/plugins/projectexplorer/kitmodel.cpp index 2a63f20c681..d543022c51a 100644 --- a/src/plugins/projectexplorer/kitmodel.cpp +++ b/src/plugins/projectexplorer/kitmodel.cpp @@ -345,7 +345,7 @@ void KitModel::removeKit(Kit *k) if (node == m_defaultNode) setDefaultNode(findSecondLevelItem([node](KitNode *kn) { return kn != node; })); - delete takeItem(node); + destroyItem(node); validateKitNames(); emit kitStateChanged(); diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp index ee40edfbb0e..2287633d34b 100644 --- a/src/plugins/projectexplorer/toolchainoptionspage.cpp +++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp @@ -255,7 +255,7 @@ void ToolChainOptionsWidget::removeToolChain(ToolChain *tc) auto item = m_model.findSecondLevelItem([tc](ToolChainTreeItem *item) { return tc->isAutoDetected() && item->toolChain == tc; }); - delete m_model.takeItem(item); + m_model.destroyItem(item); updateState(); } diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index 3ccfb4ada80..9a3f2c8b691 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -328,10 +328,8 @@ void QtOptionsPageWidget::cleanUpQtVersions() QMessageBox::Yes, QMessageBox::No) == QMessageBox::No) return; - foreach (QtVersionItem *item, toRemove) { - m_model->takeItem(item); - delete item; - } + foreach (QtVersionItem *item, toRemove) + m_model->destroyItem(item); updateCleanUpButton(); } @@ -526,10 +524,8 @@ void QtOptionsPageWidget::updateQtVersions(const QList &additions, const QL }); // Remove changed/removed items: - foreach (QtVersionItem *item, toRemove) { - m_model->takeItem(item); - delete item; - } + foreach (QtVersionItem *item, toRemove) + m_model->destroyItem(item); // Add changed/added items: foreach (int a, toAdd) { @@ -620,8 +616,7 @@ void QtOptionsPageWidget::removeQtDir() if (!item) return; - m_model->takeItem(item); - delete item; + m_model->destroyItem(item); updateCleanUpButton(); }