From fc6ec40f2f85f49e450f28e01e8fdc27b729258d Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 16 May 2013 16:31:07 +0200 Subject: [PATCH] Qbs: Properly report related runconfigurations for Qbs nodes This fixes the run options in the context menu. Change-Id: If4911f7357329fcb843206165e20d53bf6717258 Reviewed-by: Daniel Teske --- src/plugins/qbsprojectmanager/qbsnodes.cpp | 21 +++++++++++++++++++++ src/plugins/qbsprojectmanager/qbsnodes.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 62facdf2178..cc46f98ad14 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 #include +#include #include #include #include @@ -460,6 +462,25 @@ void QbsProductNode::setQbsProductData(const qbs::ProductData *prd) emitNodeUpdated(); } +QList QbsProductNode::runConfigurationsFor(ProjectExplorer::Node *node) +{ + Q_UNUSED(node); + QList result; + QbsProjectNode *pn = qobject_cast(projectNode()); + if (!isEnabled() || !pn || pn->qbsProject()->targetExecutable(*m_qbsProductData).isEmpty()) + return result; + + foreach (ProjectExplorer::RunConfiguration *rc, pn->project()->activeTarget()->runConfigurations()) { + QbsRunConfiguration *qbsRc = qobject_cast(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 f44d33dd39a..6e89b373fb1 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 runConfigurationsFor(Node *node); + private: QbsGroupNode *findGroupNode(const QString &name);