TreeModel: takeItem should return the item

The usual Qt API for "takeXyz()" methods is to return the item that was
"taken".

Change-Id: Ie144051801487a301b3f13e2857735b65f58150b
Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-06-09 09:33:14 +02:00
parent 5309e217e4
commit b1393d4778
9 changed files with 14 additions and 22 deletions

View File

@@ -1027,23 +1027,24 @@ void TreeModel::clear()
\note The item is not destroyed, ownership is effectively passed to the caller. \note The item is not destroyed, ownership is effectively passed to the caller.
*/ */
void TreeModel::takeItem(TreeItem *item) TreeItem *TreeModel::takeItem(TreeItem *item)
{ {
#if USE_MODEL_TEST #if USE_MODEL_TEST
(void) new ModelTest(this, this); (void) new ModelTest(this, this);
#endif #endif
QTC_ASSERT(item, return); QTC_ASSERT(item, return item);
TreeItem *parent = item->parent(); TreeItem *parent = item->parent();
QTC_ASSERT(parent, return); QTC_ASSERT(parent, return item);
int pos = parent->m_children.indexOf(item); int pos = parent->m_children.indexOf(item);
QTC_ASSERT(pos != -1, return); QTC_ASSERT(pos != -1, return item);
QModelIndex idx = indexForItem(parent); QModelIndex idx = indexForItem(parent);
beginRemoveRows(idx, pos, pos); beginRemoveRows(idx, pos, pos);
item->m_parent = 0; item->m_parent = 0;
parent->m_children.removeAt(pos); parent->m_children.removeAt(pos);
endRemoveRows(); endRemoveRows();
return item;
} }
// //

View File

@@ -291,7 +291,7 @@ public:
return Utils::findOrDefault(itemsAtLevel<T>(level, start), f); return Utils::findOrDefault(itemsAtLevel<T>(level, start), f);
} }
void takeItem(TreeItem *item); // item is not destroyed. TreeItem *takeItem(TreeItem *item); // item is not destroyed.
signals: signals:
void requestExpansion(QModelIndex); void requestExpansion(QModelIndex);

View File

@@ -265,8 +265,7 @@ void GdbServerProviderModel::removeProvider(GdbServerProvider *provider)
} }
n = findNode(rootItem()->children(), provider); n = findNode(rootItem()->children(), provider);
takeItem(n); delete takeItem(n);
delete n;
emit providerStateChanged(); emit providerStateChanged();
} }

View File

@@ -237,10 +237,8 @@ void CMakeToolItemModel::removeCMakeTool(const Core::Id &id)
CMakeToolTreeItem *treeItem = cmakeToolItem(id); CMakeToolTreeItem *treeItem = cmakeToolItem(id);
QTC_ASSERT(treeItem, return); QTC_ASSERT(treeItem, return);
takeItem(treeItem); delete takeItem(treeItem);
m_removedItems.append(id); m_removedItems.append(id);
delete treeItem;
} }
void CMakeToolItemModel::apply() void CMakeToolItemModel::apply()

View File

@@ -412,8 +412,7 @@ void BreakHandler::deletionHelper(BreakpointModelId id)
{ {
Breakpoint b = breakpointById(id); Breakpoint b = breakpointById(id);
QTC_ASSERT(b, return); QTC_ASSERT(b, return);
takeItem(b.b); delete takeItem(b.b);
delete b.b;
} }
Breakpoint BreakHandler::findWatchpoint(const BreakpointParameters &params) const Breakpoint BreakHandler::findWatchpoint(const BreakpointParameters &params) const
@@ -1235,8 +1234,7 @@ void BreakHandler::changeLineNumberFromMarkerHelper(BreakpointModelId id)
Breakpoint b = breakpointById(id); Breakpoint b = breakpointById(id);
QTC_ASSERT(b, return); QTC_ASSERT(b, return);
BreakpointParameters params = b.parameters(); BreakpointParameters params = b.parameters();
takeItem(b.b); delete takeItem(b.b);
delete b.b;
appendBreakpoint(params); appendBreakpoint(params);
} }

View File

@@ -165,8 +165,7 @@ void DebuggerItemModel::removeCurrentDebugger()
QVariant id = m_currentTreeItem->m_item.id(); QVariant id = m_currentTreeItem->m_item.id();
DebuggerTreeItem *treeItem = m_currentTreeItem; DebuggerTreeItem *treeItem = m_currentTreeItem;
m_currentTreeItem = 0; m_currentTreeItem = 0;
takeItem(treeItem); delete takeItem(treeItem);
delete treeItem;
m_removedItems.append(id); m_removedItems.append(id);
} }

View File

@@ -1251,8 +1251,7 @@ void WatchHandler::removeItemByIName(const QByteArray &iname)
theWatcherNames.remove(item->exp); theWatcherNames.remove(item->exp);
saveWatchers(); saveWatchers();
} }
m_model->takeItem(item); delete m_model->takeItem(item);
delete item;
updateWatchersWindow(); updateWatchersWindow();
} }

View File

@@ -359,8 +359,7 @@ void KitModel::removeKit(Kit *k)
if (node == m_defaultNode) if (node == m_defaultNode)
setDefaultNode(findItemAtLevel<KitNode *>(2, [node](KitNode *kn) { return kn != node; })); setDefaultNode(findItemAtLevel<KitNode *>(2, [node](KitNode *kn) { return kn != node; }));
takeItem(node); delete takeItem(node);
delete node;
validateKitNames(); validateKitNames();
emit kitStateChanged(); emit kitStateChanged();

View File

@@ -259,8 +259,7 @@ void ToolChainOptionsWidget::removeToolChain(ToolChain *tc)
TreeItem *parent = m_model.rootItem()->child(tc->isAutoDetected() ? 0 : 1); TreeItem *parent = m_model.rootItem()->child(tc->isAutoDetected() ? 0 : 1);
foreach (ToolChainTreeItem *item, m_model.itemsAtLevel<ToolChainTreeItem *>(1, parent)) { foreach (ToolChainTreeItem *item, m_model.itemsAtLevel<ToolChainTreeItem *>(1, parent)) {
if (item->toolChain == tc) { if (item->toolChain == tc) {
m_model.takeItem(item); delete m_model.takeItem(item);
delete item;
break; break;
} }
} }