diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index b73335b1b26..0ee760b9a13 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -637,8 +637,21 @@ void FormEditorView::auxiliaryDataChanged(const ModelNode &node, const PropertyN } } +static void updateTransitions(FormEditorScene *scene, const QmlItemNode &qmlItemNode) +{ + QmlFlowTargetNode flowItem(qmlItemNode); + if (flowItem.isValid() && flowItem.flowView().isValid()) { + const auto nodes = flowItem.flowView().transitions(); + for (const ModelNode &node : nodes) { + if (FormEditorItem *item = scene->itemForQmlItemNode(node)) + item->updateGeometry(); + } + }; +} + void FormEditorView::instancesCompleted(const QVector &completedNodeList) { + const bool isFlow = rootModelNode().isValid() && QmlItemNode(rootModelNode()).isFlowView(); QList itemNodeList; for (const ModelNode &node : completedNodeList) { const QmlItemNode qmlItemNode(node); @@ -646,6 +659,8 @@ void FormEditorView::instancesCompleted(const QVector &completedNodeL if (FormEditorItem *item = scene()->itemForQmlItemNode(qmlItemNode)) { scene()->synchronizeParent(qmlItemNode); itemNodeList.append(item); + if (isFlow && qmlItemNode.isFlowItem()) + updateTransitions(scene(), qmlItemNode); } } }