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>
This commit is contained in:
Tobias Hunger
2013-05-16 16:31:07 +02:00
parent ff778a6c88
commit fc6ec40f2f
2 changed files with 23 additions and 0 deletions

View File

@@ -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()) {

View File

@@ -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);