diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 62facdf2178e36754e9fc6f47a55e866d9fb81b0..cc46f98ad1444aff22d5385e6b250e1b389c97c6 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -30,9 +30,11 @@ #include "qbsnodes.h" #include "qbsproject.h" +#include "qbsrunconfiguration.h" #include <coreplugin/fileiconprovider.h> #include <coreplugin/idocument.h> +#include <projectexplorer/target.h> #include <qtsupport/qtsupportconstants.h> #include <utils/hostosinfo.h> #include <utils/qtcassert.h> @@ -460,6 +462,25 @@ void QbsProductNode::setQbsProductData(const qbs::ProductData *prd) emitNodeUpdated(); } +QList<ProjectExplorer::RunConfiguration *> QbsProductNode::runConfigurationsFor(ProjectExplorer::Node *node) +{ + Q_UNUSED(node); + QList<ProjectExplorer::RunConfiguration *> result; + QbsProjectNode *pn = qobject_cast<QbsProjectNode *>(projectNode()); + if (!isEnabled() || !pn || pn->qbsProject()->targetExecutable(*m_qbsProductData).isEmpty()) + return result; + + foreach (ProjectExplorer::RunConfiguration *rc, pn->project()->activeTarget()->runConfigurations()) { + QbsRunConfiguration *qbsRc = qobject_cast<QbsRunConfiguration *>(rc); + if (!qbsRc) + continue; + if (qbsRc->qbsProduct() == qbsProductData()->name()) + result << qbsRc; + } + + return result; +} + QbsGroupNode *QbsProductNode::findGroupNode(const QString &name) { foreach (ProjectExplorer::ProjectNode *n, subProjectNodes()) { diff --git a/src/plugins/qbsprojectmanager/qbsnodes.h b/src/plugins/qbsprojectmanager/qbsnodes.h index f44d33dd39a1535e5cb58f7fe156bec53845e7fd..6e89b373fb1b496140461977678d9d1e7943bdce 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.h +++ b/src/plugins/qbsprojectmanager/qbsnodes.h @@ -151,6 +151,8 @@ public: void setQbsProductData(const qbs::ProductData *prd); const qbs::ProductData *qbsProductData() const { return m_qbsProductData; } + QList<ProjectExplorer::RunConfiguration *> runConfigurationsFor(Node *node); + private: QbsGroupNode *findGroupNode(const QString &name);