summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
});
}
}