QmlDesigner: Update transitions if position changes

Change-Id: Ie971ee68f9f0ea9b200955487fe53e6465030129
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2020-12-03 17:26:36 +01:00
parent e62d364d97
commit de3faf853d

View File

@@ -656,8 +656,23 @@ void FormEditorFlowActionItem::setDataModelPositionInBaseState(const QPointF &po
void FormEditorFlowActionItem::updateGeometry()
{
FormEditorItem::updateGeometry();
//const QPointF pos = qmlItemNode().flowPosition();
//setTransform(QTransform::fromTranslate(pos.x(), pos.y()));
const QPointF pos = qmlItemNode().instancePosition();
if (pos == m_oldPos)
return;
m_oldPos = pos;
// 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 *)