diff options
Diffstat (limited to 'src/plugins/qmakeprojectmanager/qmakerunconfigurationfactory.cpp')
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakerunconfigurationfactory.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakerunconfigurationfactory.cpp b/src/plugins/qmakeprojectmanager/qmakerunconfigurationfactory.cpp index 3acc165550..12b3e9a13b 100644 --- a/src/plugins/qmakeprojectmanager/qmakerunconfigurationfactory.cpp +++ b/src/plugins/qmakeprojectmanager/qmakerunconfigurationfactory.cpp @@ -25,7 +25,7 @@ #include "qmakerunconfigurationfactory.h" -#include <extensionsystem/pluginmanager.h> +using namespace ProjectExplorer; namespace QmakeProjectManager { @@ -35,13 +35,15 @@ QmakeRunConfigurationFactory::QmakeRunConfigurationFactory(QObject *parent) : QmakeRunConfigurationFactory *QmakeRunConfigurationFactory::find(ProjectExplorer::Target *t) { - if (!t) - return nullptr; - - return ExtensionSystem::PluginManager::getObject<QmakeRunConfigurationFactory>( - [&t](QmakeRunConfigurationFactory *factory) { - return factory->canHandle(t); - }); + if (t) { + for (auto factory : IRunConfigurationFactory::allRunConfigurationFactories()) { + if (auto qmakeFactory = qobject_cast<QmakeRunConfigurationFactory *>(factory)) { + if (qmakeFactory->canHandle(t)) + return qmakeFactory; + } + } + } + return nullptr; } } // namespace QmakeProjectManager |