From 7d45a1a1c5253b9d37dafe3fcfc277c134b2da7a Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 19 Jun 2014 14:05:40 +0200 Subject: [PATCH] IBuildConfigurationFactory: Partial revert of 5a30007e45e The find methods should not return a factory with a -1 priority. Change-Id: I05dab0c48b24b30f88cf40f49c2bc0e24bff46ec Reviewed-by: Tobias Hunger --- .../projectexplorer/buildconfiguration.cpp | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 0b217f7cfe5..b764d8b043a 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -344,23 +344,33 @@ IBuildConfigurationFactory *IBuildConfigurationFactory::find(Kit *k, const QStri { QList factories = ExtensionSystem::PluginManager::instance()->getObjects(); - - return Utils::bestElementOr(factories, 0, - [&k, &projectPath](IBuildConfigurationFactory *a, IBuildConfigurationFactory *b) { - return a->priority(k, projectPath) > b->priority(k, projectPath); - }); + IBuildConfigurationFactory *factory = 0; + int priority = -1; + foreach (IBuildConfigurationFactory *i, factories) { + int iPriority = i->priority(k, projectPath); + if (iPriority > priority) { + factory = i; + priority = iPriority; + } + } + return factory; } // create IBuildConfigurationFactory * IBuildConfigurationFactory::find(Target *parent) { QList factories - = ExtensionSystem::PluginManager::getObjects(); - - return Utils::bestElementOr(factories, 0, - [&parent](IBuildConfigurationFactory *a, IBuildConfigurationFactory *b) { - return a->priority(parent) > b->priority(parent); - }); + = ExtensionSystem::PluginManager::instance()->getObjects(); + IBuildConfigurationFactory *factory = 0; + int priority = -1; + foreach (IBuildConfigurationFactory *i, factories) { + int iPriority = i->priority(parent); + if (iPriority > priority) { + factory = i; + priority = iPriority; + } + } + return factory; } // clone