forked from qt-creator/qt-creator
ToolChainManager: Fix autodetected toolchains going manual
The recent optimization to avoid running toolchains during startup has broken the registration of tool chains with the manager, resulting in auto-detected toolchains being demoted to manual in one run and then getting removed in the next (at which point a new set of toolchains got auto-detected). Change-Id: I175c7344238df1bcb36a8b4949f0f0faf8828116 Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
@@ -213,7 +213,7 @@ void ToolChainManager::restoreToolChains()
|
||||
}
|
||||
|
||||
// Then auto detect
|
||||
QList<ToolChain *> detectedTcs;
|
||||
QList<ToolChain *> detectedTcs = tcsToCheck;
|
||||
QList<ToolChainFactory *> factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>();
|
||||
foreach (ToolChainFactory *f, factories)
|
||||
detectedTcs.append(f->autoDetect(tcsToCheck));
|
||||
@@ -226,7 +226,10 @@ void ToolChainManager::restoreToolChains()
|
||||
// Check whether we had this TC stored and prefer the old one with the old id, marked
|
||||
// as auto-detection.
|
||||
for (int i = 0; i < tcsToCheck.count(); ++i) {
|
||||
if (*(tcsToCheck.at(i)) == *currentDetected) {
|
||||
if (tcsToCheck.at(i) == currentDetected) {
|
||||
tcsToCheck.removeAt(i);
|
||||
break;
|
||||
} else if (*(tcsToCheck.at(i)) == *currentDetected) {
|
||||
toStore = tcsToCheck.at(i);
|
||||
toStore->setDetection(ToolChain::AutoDetection);
|
||||
tcsToCheck.removeAt(i);
|
||||
|
Reference in New Issue
Block a user