From 92cacf3d0efb5a2e13bf62f6c4664daddb9a3b9b Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 3 Jul 2012 14:01:11 +0200 Subject: [PATCH] Fix RCs getting removed again Fix non-CustomExecutable RunConfigurations getting removed directly. Also keep unconfigured RCs around if they are the active RC. This stops CustomExecutableRCs from disappearing before the user had a chance to configure them. Task-number: QTCREATORBUG-7562 Change-Id: Iaa0c8b9f55425857ad326200071abaea2d390c99 Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/target.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 59ff84c9942..872e1551902 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -569,10 +569,10 @@ void Target::updateDefaultRunConfigurations() // sort existing RCs into configured/unconfigured. foreach (RunConfiguration *rc, runConfigurations()) { - if (rc->isConfigured()) - existingConfigured << rc; - else + if (!rc->isConfigured() && rc != activeRunConfiguration()) existingUnconfigured << rc; + else + existingConfigured << rc; } int configuredCount = existingConfigured.count(); @@ -584,12 +584,15 @@ void Target::updateDefaultRunConfigurations() // Put outdated RCs into toRemove, do not bother with factories // that produce already existing RCs QList toRemove; + QList toIgnore; foreach (RunConfiguration *rc, existingConfigured) { if (factoryIds.contains(rc->id())) - factoryIds.removeOne(rc->id()); // Already there + toIgnore.append(rc->id()); // Already there else toRemove << rc; } + foreach (Core::Id i, toIgnore) + factoryIds.removeAll(i); configuredCount -= toRemove.count(); // Create new RCs and put them into newConfigured/newUnconfigured