From 632d64fdc75ea373e13ebb5c971b2fdb2440f903 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 13 Mar 2019 14:15:33 +0100 Subject: [PATCH] QbsProjectManager: Fix "Build product" action for files in groups Change-Id: Ia557d51654ee98d89f5c2c5e4df2a1b7d32afb66 Reviewed-by: hjk --- .../qbsprojectmanager/qbsprojectmanagerplugin.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp index 32976a99c50..c5c293f968d 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp @@ -322,10 +322,13 @@ void QbsProjectManagerPlugin::updateBuildActions() fileName = editorNode->filePath().fileName(); ProjectNode *parentProjectNode = editorNode->parentProjectNode(); + const QbsProductNode *productNode = nullptr; + for (const ProjectNode *potentialProductNode = parentProjectNode; + potentialProductNode && !productNode; + potentialProductNode = potentialProductNode->parentProjectNode()) { + productNode = dynamic_cast(potentialProductNode); + } - // FIXME: This code is wrong: If the file is in a Group, then productNode will be - // null and the action will be disabled. We have to walk up the tree. - auto productNode = dynamic_cast(parentProjectNode); if (productNode) { productVisible = true; productName = productNode->displayName();