From 0e2144135c08e9c003b3b4c3e81ee842d30e7b94 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 23 Mar 2020 15:53:42 +0100 Subject: [PATCH] QmlDesigner: Create decision and wildcard items in form editor Change-Id: Ib33c6fc9bc22885281b7172fe52e5326b6744cf3 Reviewed-by: Tim Jenssen --- .../components/formeditor/formeditorscene.cpp | 4 ++++ .../components/formeditor/formeditorscene.h | 4 +++- .../components/formeditor/formeditorview.cpp | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp index 3f2e83bf1ac..1812ee0dc24 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp @@ -178,6 +178,10 @@ FormEditorItem *FormEditorScene::addFormEditorItem(const QmlItemNode &qmlItemNod formEditorItem = new FormEditorFlowActionItem(qmlItemNode, this); else if (type == FlowTransition) formEditorItem = new FormEditorTransitionItem(qmlItemNode, this); + else if (type == FlowDecision) + formEditorItem = new FormEditorFlowDecisionItem(qmlItemNode, this); + else if (type == FlowWildcard) + formEditorItem = new FormEditorFlowWildcardItem(qmlItemNode, this); else formEditorItem = new FormEditorItem(qmlItemNode, this); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.h b/src/plugins/qmldesigner/components/formeditor/formeditorscene.h index 5c4f0875755..2ab2dc273e3 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.h @@ -55,7 +55,9 @@ public: Default, Flow, FlowAction, - FlowTransition + FlowTransition, + FlowDecision, + FlowWildcard }; FormEditorScene(FormEditorWidget *widget, FormEditorView *editorView); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index c37ff56cc04..6149b248ce9 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -105,6 +105,16 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode) if (qmlItemNode.hasNodeParent()) m_scene->reparentItem(qmlItemNode, qmlItemNode.modelParentItem()); m_scene->synchronizeTransformation(m_scene->itemForQmlItemNode(qmlItemNode)); + } else if (qmlItemNode.isFlowDecision()) { + m_scene->addFormEditorItem(qmlItemNode, FormEditorScene::FlowDecision); + if (qmlItemNode.hasNodeParent()) + m_scene->reparentItem(qmlItemNode, qmlItemNode.modelParentItem()); + m_scene->synchronizeTransformation(m_scene->itemForQmlItemNode(qmlItemNode)); + } else if (qmlItemNode.isFlowWildcard()) { + m_scene->addFormEditorItem(qmlItemNode, FormEditorScene::FlowWildcard); + if (qmlItemNode.hasNodeParent()) + m_scene->reparentItem(qmlItemNode, qmlItemNode.modelParentItem()); + m_scene->synchronizeTransformation(m_scene->itemForQmlItemNode(qmlItemNode)); } else if (qmlItemNode.isFlowActionArea()) { m_scene->addFormEditorItem(qmlItemNode.toQmlItemNode(), FormEditorScene::FlowAction); m_scene->synchronizeParent(qmlItemNode.toQmlItemNode()); @@ -134,6 +144,10 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode) for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) { if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowTransition()) { setupFormEditorItemTree(nextNode.toQmlItemNode()); + } else if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowDecision()) { + setupFormEditorItemTree(nextNode.toQmlItemNode()); + } else if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowWildcard()) { + setupFormEditorItemTree(nextNode.toQmlItemNode()); } } } else {