From fc6ec40f2f85f49e450f28e01e8fdc27b729258d Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> 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 <daniel.teske@digia.com> --- 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 <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 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<ProjectExplorer::RunConfiguration *> runConfigurationsFor(Node *node); + private: QbsGroupNode *findGroupNode(const QString &name); -- GitLab