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)
|
void FormEditorView::instancesCompleted(const QVector<ModelNode> &completedNodeList)
|
||||||
{
|
{
|
||||||
|
const bool isFlow = rootModelNode().isValid() && QmlItemNode(rootModelNode()).isFlowView();
|
||||||
QList<FormEditorItem*> itemNodeList;
|
QList<FormEditorItem*> itemNodeList;
|
||||||
for (const ModelNode &node : completedNodeList) {
|
for (const ModelNode &node : completedNodeList) {
|
||||||
const QmlItemNode qmlItemNode(node);
|
const QmlItemNode qmlItemNode(node);
|
||||||
@@ -646,6 +659,8 @@ void FormEditorView::instancesCompleted(const QVector<ModelNode> &completedNodeL
|
|||||||
if (FormEditorItem *item = scene()->itemForQmlItemNode(qmlItemNode)) {
|
if (FormEditorItem *item = scene()->itemForQmlItemNode(qmlItemNode)) {
|
||||||
scene()->synchronizeParent(qmlItemNode);
|
scene()->synchronizeParent(qmlItemNode);
|
||||||
itemNodeList.append(item);
|
itemNodeList.append(item);
|
||||||
|
if (isFlow && qmlItemNode.isFlowItem())
|
||||||
|
updateTransitions(scene(), qmlItemNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user