forked from qt-creator/qt-creator
QmlDesigner.FlowView: Update flow items in instancesCompleted
When a instances are completed we call updateGeometry on all transitions to ensure the click region is correctly initialized. Change-Id: I75e81c0010e952a7d0567b3396e95eb134bd86fc Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -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<ModelNode> &completedNodeList)
|
||||
{
|
||||
const bool isFlow = rootModelNode().isValid() && QmlItemNode(rootModelNode()).isFlowView();
|
||||
QList<FormEditorItem*> itemNodeList;
|
||||
for (const ModelNode &node : completedNodeList) {
|
||||
const QmlItemNode qmlItemNode(node);
|
||||
@@ -646,6 +659,8 @@ void FormEditorView::instancesCompleted(const QVector<ModelNode> &completedNodeL
|
||||
if (FormEditorItem *item = scene()->itemForQmlItemNode(qmlItemNode)) {
|
||||
scene()->synchronizeParent(qmlItemNode);
|
||||
itemNodeList.append(item);
|
||||
if (isFlow && qmlItemNode.isFlowItem())
|
||||
updateTransitions(scene(), qmlItemNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user