From 509657b6a143b23e0e24c38d2b033763d5dd766d Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Thu, 12 Jan 2017 13:26:24 +0100 Subject: [PATCH] Android: Fix file system name for Android kits not being sticky Task-number: QTCREATORBUG-17567 Change-Id: I48a3b2f8486c63676bb18ff025ed6412f48e3873 Reviewed-by: Tobias Hunger --- src/plugins/android/androidconfigurations.cpp | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 0bf15ed0c76..8a75c98f511 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1289,7 +1289,6 @@ void AndroidConfigurations::updateAutomaticKitList() } // register new kits - QList newKits; const QList tmp = Utils::filtered(ToolChainManager::toolChains(), [](ToolChain *tc) { return tc->isAutoDetected() && tc->isValid() @@ -1316,6 +1315,13 @@ void AndroidConfigurations::updateAutomaticKitList() QtSupport::QtKitInformation::setQtVersion(newKit, qt); DeviceKitInformation::setDevice(newKit, device); + auto findExistingKit = [newKit](const Kit *k) { return matchKits(newKit, k); }; + Kit *existingKit = Utils::findOrDefault(existingKits, findExistingKit); + if (existingKit) { + KitManager::deleteKit(newKit); + newKit = existingKit; + } + Debugger::DebuggerItem debugger; debugger.setCommand(tc->suggestedDebugger()); debugger.setEngineType(Debugger::GdbEngineType); @@ -1332,19 +1338,8 @@ void AndroidConfigurations::updateAutomaticKitList() .arg(static_cast(qt)->targetArch()) .arg(tc->ndkToolChainVersion()) .arg(qt->qtVersionString())); - newKits << newKit; - } - } - - QSet rediscoveredExistingKits; - for (Kit *newKit : newKits) { - Kit *existingKit = Utils::findOrDefault(existingKits, [newKit](const Kit *k) { return matchKits(newKit, k); }); - if (existingKit) { - existingKit->copyFrom(newKit); - KitManager::deleteKit(newKit); - rediscoveredExistingKits.insert(existingKit); - } else { - KitManager::registerKit(newKit); + if (!existingKit) + KitManager::registerKit(newKit); } } }