summaryrefslogtreecommitdiff
path: root/src/plugins/qmakeprojectmanager/qmakenodes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmakeprojectmanager/qmakenodes.cpp')
-rw-r--r--src/plugins/qmakeprojectmanager/qmakenodes.cpp32
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;