From 5d0c1a419c48261818bd1c8b6f2b0c2998c9a3bd Mon Sep 17 00:00:00 2001 From: dt Date: Wed, 23 Feb 2011 16:22:41 +0100 Subject: [PATCH] Toolchainsoptions page: Treat adding/removing correctly Reviewed-By: hunger --- src/plugins/projectexplorer/toolchainoptionspage.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp index 69517448147..035f3db2cc0 100644 --- a/src/plugins/projectexplorer/toolchainoptionspage.cpp +++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp @@ -307,7 +307,6 @@ void ToolChainModel::apply() foreach (ToolChainNode *n, nodes) { ToolChainManager::instance()->registerToolChain(n->toolChain); } - Q_ASSERT(m_toAddList.isEmpty()); } void ToolChainModel::discard() @@ -339,6 +338,7 @@ void ToolChainModel::discard() n->widget->discard(); n->changed = false; } + reset(); } void ToolChainModel::markForRemoval(ToolChain *tc) @@ -351,9 +351,15 @@ void ToolChainModel::markForRemoval(ToolChain *tc) } } if (node) { - m_toRemoveList.append(node); emit beginRemoveRows(index(m_manualRoot), m_manualRoot->childNodes.indexOf(node), m_manualRoot->childNodes.indexOf(node)); m_manualRoot->childNodes.removeOne(node); + if (m_toAddList.contains(node)) { + delete node->toolChain; + node->toolChain = 0; + m_toAddList.removeOne(node); + } else { + m_toRemoveList.append(node); + } emit endRemoveRows(); } }