QmlDesigner: Implement joinConnection

This flag indicates that the connections are ignoring the FlowActions
and connect the FlowItems directly.

Change-Id: I84587700e406d03ed9e30c224d93f46d2367034f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2020-03-24 16:57:36 +01:00
parent df9081f38e
commit df1a21f92f

View File

@@ -923,6 +923,7 @@ void FormEditorTransitionItem::paint(QPainter *painter, const QStyleOptionGraphi
QmlFlowActionAreaNode areaNode = ModelNode(); QmlFlowActionAreaNode areaNode = ModelNode();
bool joinConnection = false;
if (from.isValid() && to.isValid()) if (from.isValid() && to.isValid())
bool isStartLine = false; bool isStartLine = false;
@@ -931,6 +932,8 @@ void FormEditorTransitionItem::paint(QPainter *painter, const QStyleOptionGraphi
if (area.targetTransition() == qmlItemNode().modelNode()) if (area.targetTransition() == qmlItemNode().modelNode())
areaNode = area; areaNode = area;
} }
if (from.modelNode().hasAuxiliaryData("joinConnection"))
joinConnection = from.modelNode().auxiliaryData("joinConnection").toBool();
} else { } else {
if (from == qmlItemNode().rootModelNode()) { if (from == qmlItemNode().rootModelNode()) {
isStartLine = true; isStartLine = true;
@@ -950,7 +953,7 @@ void FormEditorTransitionItem::paint(QPainter *painter, const QStyleOptionGraphi
fromRect.translate(QmlItemNode(to).flowPosition()- QPoint(200, 0)); fromRect.translate(QmlItemNode(to).flowPosition()- QPoint(200, 0));
} }
if (areaNode.isValid()) { if (!joinConnection && areaNode.isValid()) {
fromRect = QmlItemNode(areaNode).instanceBoundingRect(); fromRect = QmlItemNode(areaNode).instanceBoundingRect();
fromRect.translate(QmlItemNode(from).flowPosition()); fromRect.translate(QmlItemNode(from).flowPosition());
fromRect.translate(areaNode.instancePosition()); fromRect.translate(areaNode.instancePosition());