From dbccc57597169246827c5ec6087ad7316c2ad4e1 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 8 Apr 2020 19:28:47 +0200 Subject: QmlDesigner: Support different transition targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FlowDecision and FlowWildcard can now be connected. Change-Id: Iee7f38a23ba2c12d2843996eca46ff31f66af5a4 Reviewed-by: Henning Gründl Reviewed-by: Tim Jenssen --- .../components/componentcore/designeractionmanager.cpp | 6 +++++- .../components/componentcore/modelnodeoperations.cpp | 13 +++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp index 3687ba362d..42f95952db 100644 --- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp @@ -354,8 +354,12 @@ bool isFlowTransitionItem(const SelectionContext &context) bool isFlowActionItemItem(const SelectionContext &context) { + const ModelNode selectedNode = context.currentSingleSelectedNode(); + return context.singleNodeIsSelected() - && QmlFlowActionAreaNode::isValidQmlFlowActionAreaNode(context.currentSingleSelectedNode()); + && (QmlFlowActionAreaNode::isValidQmlFlowActionAreaNode(selectedNode) + || QmlVisualNode::isFlowDecision(selectedNode) + || QmlVisualNode::isFlowWildcard(selectedNode)); } bool isFlowItemOrTransition(const SelectionContext &context) diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index c0f53f4946..2c239a8aa9 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -1052,16 +1052,17 @@ void addTransition(const SelectionContext &selectionContext) { if (selectionContext.view()) { AbstractView *view = selectionContext.view(); - QmlFlowItemNode targetItem = selectionContext.targetNode(); - QmlFlowActionAreaNode actionArea = selectionContext.currentSingleSelectedNode(); + QmlFlowTargetNode targetNode = selectionContext.targetNode(); + QmlFlowTargetNode sourceNode = selectionContext.currentSingleSelectedNode(); + + QTC_ASSERT(targetNode.isValid(), return); + QTC_ASSERT(sourceNode.isValid(), return); - QTC_ASSERT(targetItem.isValid(), return); - QTC_ASSERT(actionArea.isValid(), return); view->executeInTransaction("DesignerActionManager:addTransition", - [view, targetItem, &actionArea](){ - actionArea.assignTargetFlowItem(targetItem); + [view, targetNode, &sourceNode](){ + sourceNode.assignTargetItem(targetNode); }); } } -- cgit v1.2.1