From 37564d267bd1476753ab7cd31eafe6548a8d37e1 Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Tue, 6 Dec 2022 14:42:29 +0100 Subject: [PATCH] QmlDesigner: Fix Connections status in ContextMenu Task-number: QDS-8521 Change-Id: Id0b835fb14b18563d4ecc0c1b2039b9bb181c32c Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: Aleksei German --- .../componentcore/designeractionmanager.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp index 20027265685..488d7d2bb99 100644 --- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include @@ -610,31 +611,29 @@ public: { menu()->clear(); - menu()->setEnabled(true); - const auto selection = selectionContext(); + + bool showMenu = false; + auto cleanup = qScopeGuard([&]{ menu()->setEnabled(showMenu); }); + if (!selection.isValid()) return; if (!selection.singleNodeIsSelected()) return; - if (!action()->isEnabled()) - return; ModelNode currentNode = selection.currentSingleSelectedNode(); if (!currentNode.isValid()) return; + if (!currentNode.hasId()) + return; + showMenu = true; QmlObjectNode currentObjectNode(currentNode); QStringList signalsList = getSignalsList(currentNode); QList slotsLists = getSlotsLists(currentNode); - if (!currentNode.hasId()) { - menu()->setEnabled(false); - return; - } - for (const ModelNode &connectionNode : currentObjectNode.getAllConnections()) { for (const AbstractProperty &property : connectionNode.properties()) { if (property.isSignalHandlerProperty() && property.name() != "target") {