diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp index e5f43c9e783..10eff821136 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp @@ -605,8 +605,14 @@ void FormEditorFlowItem::updateGeometry() { FormEditorItem::updateGeometry(); const QPointF pos = qmlItemNode().flowPosition(); + setTransform(QTransform::fromTranslate(pos.x(), pos.y())); + if (pos == m_oldPos) + return; + + m_oldPos = pos; + // Call updateGeometry() on all related transitions QmlFlowTargetNode flowItem(qmlItemNode()); if (flowItem.isValid() && flowItem.flowView().isValid()) { @@ -652,16 +658,6 @@ void FormEditorFlowActionItem::updateGeometry() FormEditorItem::updateGeometry(); //const QPointF pos = qmlItemNode().flowPosition(); //setTransform(QTransform::fromTranslate(pos.x(), pos.y())); - - // Call updateGeometry() on all related transitions - QmlFlowItemNode flowItem = QmlFlowActionAreaNode(qmlItemNode()).flowItemParent(); - 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 FormEditorFlowActionItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) @@ -1748,16 +1744,6 @@ void FormEditorFlowDecisionItem::updateGeometry() setTransform(qmlItemNode().instanceTransformWithContentTransform()); const QPointF pos = qmlItemNode().flowPosition(); setTransform(QTransform::fromTranslate(pos.x(), pos.y())); - - // Call updateGeometry() on all related transitions - 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 FormEditorFlowDecisionItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.h b/src/plugins/qmldesigner/components/formeditor/formeditoritem.h index 9551f1eb88d..b5eddd1407b 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.h @@ -163,6 +163,8 @@ protected: FormEditorFlowItem(const QmlItemNode &qmlItemNode, FormEditorScene *scene) : FormEditorItem(qmlItemNode, scene) {} +private: + QPointF m_oldPos; }; class FormEditorFlowActionItem : public FormEditorItem @@ -180,6 +182,8 @@ protected: FormEditorFlowActionItem(const QmlItemNode &qmlItemNode, FormEditorScene *scene) : FormEditorItem(qmlItemNode, scene) {} +private: + QPointF m_oldPos; }; class FormEditorTransitionItem : public FormEditorItem