diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2019-11-05 15:38:12 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2019-11-08 12:54:06 +0000 |
commit | 862b7fa35c7e8cbc0e0b2367b83a1b63dbc43e70 (patch) | |
tree | 4f6b5f89bf8ec86499c7d07f171f8da94c5322eb /share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml | |
parent | c67965fb2932a129ba6aa87875007fd5b70b24fd (diff) |
QmlDesigner: Add planar move and scale handles to gizmos
Change-Id: Icae60ec35fc84d731243a005e97b174fa9a94815
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml')
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml | 127 |
1 files changed, 61 insertions, 66 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml index c035f9c85e..b8e6cdafb9 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/MoveGizmo.qml @@ -35,7 +35,8 @@ Node { property Node targetNode: null property bool globalOrientation: true readonly property bool dragging: arrowX.dragging || arrowY.dragging || arrowZ.dragging - || centerMouseArea.dragging + || planeX.dragging || planeY.dragging || planeZ.dragging + || centerBall.dragging signal positionCommit() signal positionMove() @@ -45,7 +46,6 @@ Node { Arrow { id: arrowX - objectName: "Arrow X" rotation: Qt.vector3d(0, 0, -90) targetNode: moveGizmo.targetNode color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) @@ -59,7 +59,6 @@ Node { Arrow { id: arrowY - objectName: "Arrow Y" rotation: Qt.vector3d(0, 0, 0) targetNode: moveGizmo.targetNode color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) @@ -73,7 +72,6 @@ Node { Arrow { id: arrowZ - objectName: "Arrow Z" rotation: Qt.vector3d(90, 0, 0) targetNode: moveGizmo.targetNode color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) @@ -85,75 +83,72 @@ Node { onPositionMove: moveGizmo.positionMove() } - } + PlanarMoveHandle { + id: planeX - Model { - id: centerBall + y: 10 + z: 10 - source: "#Sphere" - scale: Qt.vector3d(0.024, 0.024, 0.024) - materials: DefaultMaterial { - id: material - emissiveColor: highlightOnHover - && (centerMouseArea.hovering || centerMouseArea.dragging) - ? Qt.lighter(Qt.rgba(0.5, 0.5, 0.5, 1)) - : Qt.rgba(0.5, 0.5, 0.5, 1) - lighting: DefaultMaterial.NoLighting + rotation: Qt.vector3d(0, 90, 0) + targetNode: moveGizmo.targetNode + color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) + : Qt.rgba(1, 0, 0, 1) + view3D: moveGizmo.view3D + active: moveGizmo.visible + + onPositionCommit: moveGizmo.positionCommit() + onPositionMove: moveGizmo.positionMove() } - MouseArea3D { - id: centerMouseArea + PlanarMoveHandle { + id: planeY + + x: 10 + z: 10 + + rotation: Qt.vector3d(90, 0, 0) + targetNode: moveGizmo.targetNode + color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) + : Qt.rgba(0, 0.6, 0, 1) view3D: moveGizmo.view3D - x: -60 - y: -60 - width: 120 - height: 120 - rotation: view3D.camera.rotation - grabsMouse: moveGizmo.targetNode - priority: 1 active: moveGizmo.visible - property var _pointerPosPressed - property var _targetStartPos - - function localPos(scenePos) - { - var scenePointerPos = mapPositionToScene(scenePos); - var sceneRelativeDistance = Qt.vector3d( - scenePointerPos.x - _pointerPosPressed.x, - scenePointerPos.y - _pointerPosPressed.y, - scenePointerPos.z - _pointerPosPressed.z); - - var newScenePos = Qt.vector3d( - _targetStartPos.x + sceneRelativeDistance.x, - _targetStartPos.y + sceneRelativeDistance.y, - _targetStartPos.z + sceneRelativeDistance.z); - - return moveGizmo.targetNode.parent.mapPositionFromScene(newScenePos); - } - - onPressed: { - if (!moveGizmo.targetNode) - return; - - _pointerPosPressed = mapPositionToScene(scenePos); - var sp = moveGizmo.targetNode.scenePosition; - _targetStartPos = Qt.vector3d(sp.x, sp.y, sp.z); - } - onDragged: { - if (!moveGizmo.targetNode) - return; - - moveGizmo.targetNode.position = localPos(scenePos); - moveGizmo.positionMove(); - } - onReleased: { - if (!moveGizmo.targetNode) - return; - - moveGizmo.targetNode.position = localPos(scenePos); - moveGizmo.positionCommit(); - } + onPositionCommit: moveGizmo.positionCommit() + onPositionMove: moveGizmo.positionMove() } + + PlanarMoveHandle { + id: planeZ + + x: 10 + y: 10 + + rotation: Qt.vector3d(0, 0, 0) + targetNode: moveGizmo.targetNode + color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) + : Qt.rgba(0, 0, 1, 1) + view3D: moveGizmo.view3D + active: moveGizmo.visible + + onPositionCommit: moveGizmo.positionCommit() + onPositionMove: moveGizmo.positionMove() + } + } + + PlanarMoveHandle { + id: centerBall + + source: "#Sphere" + color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0.5, 0.5, 0.5, 1)) + : Qt.rgba(0.5, 0.5, 0.5, 1) + rotation: view3D.camera.rotation + priority: 1 + targetNode: moveGizmo.targetNode + + view3D: moveGizmo.view3D + active: moveGizmo.visible + + onPositionCommit: moveGizmo.positionCommit() + onPositionMove: moveGizmo.positionMove() } } |