From baced09bc7b9095c7df64c5f767a3bc894d3783c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 25 Oct 2019 11:45:52 +0300 Subject: [PATCH] QmlDesigner: Fix edit view issues caused by quick3d api changes Change-Id: I4bb110ff4693c57089f659e0f125c9f89c6bdb9c Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann --- .../qtcreator/qml/qmlpuppet/mockfiles/Arrow.qml | 2 +- .../qml/qmlpuppet/mockfiles/AutoScaleHelper.qml | 10 +++++----- .../qml/qmlpuppet/mockfiles/EditView3D.qml | 6 +++--- .../qml/qmlpuppet/mockfiles/Overlay2D.qml | 17 ++++++++--------- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/Arrow.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/Arrow.qml index ae84b05cb65..dc2fee64543 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/Arrow.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/Arrow.qml @@ -57,7 +57,7 @@ Model { var maskedPosition = Qt.vector3d(pointerPosition.x, 0, 0); _pointerPosPressed = mouseArea.mapPositionToScene(maskedPosition); - var sp = targetNode.positionInScene; + var sp = targetNode.scenePosition; _targetStartPos = Qt.vector3d(sp.x, sp.y, sp.z); isDragging = true; } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/AutoScaleHelper.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/AutoScaleHelper.qml index 640f560ff80..2e8425016df 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/AutoScaleHelper.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/AutoScaleHelper.qml @@ -37,11 +37,11 @@ Node { // Read-only property real relativeScale: 1 - onGlobalTransformChanged: updateScale() + onSceneTransformChanged: updateScale() onAutoScaleChanged: updateScale() Connections { target: view3D.camera - onGlobalTransformChanged: updateScale() + onSceneTransformChanged: updateScale() } function getScale(baseScale) @@ -60,16 +60,16 @@ Node { // "anchor" distance. Map the two positions back to the target node, and measure the // distance between them now, in the 3D scene. The difference of the two distances, // view and scene, will tell us what the distance independent scale should be. - var posInView1 = view3D.mapFrom3DScene(positionInScene); + var posInView1 = view3D.mapFrom3DScene(scenePosition); var posInView2 = Qt.vector3d(posInView1.x + 100, posInView1.y, posInView1.z); var rayPos1 = view3D.mapTo3DScene(Qt.vector3d(posInView2.x, posInView2.y, 0)); var rayPos2 = view3D.mapTo3DScene(Qt.vector3d(posInView2.x, posInView2.y, 10)); var planeNormal = view3D.camera.forward; - var rayHitPos = helper.rayIntersectsPlane(rayPos1, rayPos2, positionInScene, + var rayHitPos = helper.rayIntersectsPlane(rayPos1, rayPos2, scenePosition, planeNormal); - relativeScale = positionInScene.minus(rayHitPos).length() / 100; + relativeScale = scenePosition.minus(rayHitPos).length() / 100; } } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml index dc1ff60cfca..59d3c662081 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml @@ -64,11 +64,11 @@ Window { scale: autoScale.getScale(Qt.vector3d(5, 5, 5)) highlightOnHover: true targetNode: viewWindow.selectedNode - position: viewWindow.selectedNode ? viewWindow.selectedNode.positionInScene + position: viewWindow.selectedNode ? viewWindow.selectedNode.scenePosition : Qt.vector3d(0, 0, 0) rotation: globalControl.checked || !viewWindow.selectedNode ? Qt.vector3d(0, 0, 0) - : viewWindow.selectedNode.rotationInScene + : viewWindow.selectedNode.sceneRotation visible: selectedNode view3D: overlayView @@ -79,7 +79,7 @@ Window { AutoScaleHelper { id: autoScale view3D: overlayView - position: moveGizmo.positionInScene + position: moveGizmo.scenePosition } } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/Overlay2D.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/Overlay2D.qml index fe9398bfdfd..7e1e231133a 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/Overlay2D.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/Overlay2D.qml @@ -38,22 +38,21 @@ Item { Connections { target: targetNode - onGlobalTransformChanged: updateOverlay() + onSceneTransformChanged: updateOverlay() } Connections { target: targetView.camera - onGlobalTransformChanged: updateOverlay() + onSceneTransformChanged: updateOverlay() } function updateOverlay() { - var posInScene = targetNode.positionInScene - var posInSceneWithOffset = Qt.vector3d(posInScene.x + offsetX, posInScene.y + offsetY, - posInScene.z) - var viewPos = targetView.mapFrom3DScene(posInSceneWithOffset) - root.x = viewPos.x - root.y = viewPos.y - root.z = 100000 - viewPos.z // flip left-handed to right-handed + var scenePos = targetNode.scenePosition; + var scenePosWithOffset = Qt.vector3d(scenePos.x + offsetX, scenePos.y + offsetY, scenePos.z); + var viewPos = targetView.mapFrom3DScene(scenePosWithOffset); + root.x = viewPos.x; + root.y = viewPos.y; + root.z = 100000 - viewPos.z; // flip left-handed to right-handed } }