diff options
Diffstat (limited to 'src/plugins/qmakeprojectmanager/qmakenodes.cpp')
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakenodes.cpp | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 787dc4304d..5d71c39c64 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -25,7 +25,6 @@ #include "qmakenodes.h" #include "qmakeproject.h" -#include "qmakerunconfigurationfactory.h" #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/target.h> @@ -38,26 +37,6 @@ using namespace Utils; namespace QmakeProjectManager { -static QList<RunConfiguration *> qmakeRunConfigurationsForNode(Target *t, const Node *node) -{ - QList<RunConfiguration *> result; - if (!t) - return result; // Project was not set up yet. - - const FileName file = node->filePath(); - for (auto factory : RunConfigurationFactory::allRunConfigurationFactories()) { - if (auto qmakeFactory = qobject_cast<QmakeRunConfigurationFactory *>(factory)) { - if (qmakeFactory->canHandle(t)) { - result.append(Utils::filtered(t->runConfigurations(), [qmakeFactory, file](RunConfiguration *rc) { - return qmakeFactory->hasRunConfigForProFile(rc, file); - })); - } - } - } - - return result; -} - /*! \class QmakePriFileNode Implements abstract ProjectNode class @@ -86,11 +65,6 @@ bool QmakePriFileNode::deploysFolder(const QString &folder) const return pri ? pri->deploysFolder(folder) : false; } -QList<RunConfiguration *> QmakePriFileNode::runConfigurations() const -{ - return qmakeRunConfigurationsForNode(m_project->activeTarget(), this); -} - QmakeProFileNode *QmakePriFileNode::proFileNode() const { return m_qmakeProFileNode; @@ -157,7 +131,11 @@ bool QmakePriFileNode::supportsAction(ProjectAction action, const Node *node) co } if (action == HasSubProjectRunConfigurations) { - return !qmakeRunConfigurationsForNode(m_project->activeTarget(), node).isEmpty(); + if (Target *t = m_project->activeTarget()) { + auto canRunForNode = [node](RunConfiguration *rc) { return rc->canRunForNode(node); }; + if (Utils::anyOf(t->runConfigurations(), canRunForNode)) + return true; + } } return false; |