aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-04-08 19:28:47 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-04-21 10:56:38 +0000
commitdbccc57597169246827c5ec6087ad7316c2ad4e1 (patch)
tree8dd80c9caaa58f56b8d36ebee3b88c782508740d
parent8b8a99cda7784d3e2b05cdf5f47a9dd2b79568e6 (diff)
QmlDesigner: Support different transition targets
FlowDecision and FlowWildcard can now be connected. Change-Id: Iee7f38a23ba2c12d2843996eca46ff31f66af5a4 Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp6
-rw-r--r--src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp13
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);
});
}
}