diff options
Diffstat (limited to 'src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml')
-rw-r--r-- | src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml b/src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml new file mode 100644 index 0000000000..c2969f1ab1 --- /dev/null +++ b/src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml @@ -0,0 +1,42 @@ +// Copyright (C) 2019 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0 WITH Qt-GPL-exception-1.0 + +import QtQuick 6.0 +import QtQuick3D 6.0 +import MouseArea3D 1.0 + +PlanarDraggable { + id: planarHandle + scale: Qt.vector3d(0.024, 0.024, 0.024) + + signal positionCommit() + signal positionMove() + + function localPos(sceneRelativeDistance) + { + var newScenePos = Qt.vector3d( + _targetStartPos.x + sceneRelativeDistance.x, + _targetStartPos.y + sceneRelativeDistance.y, + _targetStartPos.z + sceneRelativeDistance.z); + return targetNode.parent ? targetNode.parent.mapPositionFromScene(newScenePos) : newScenePos; + } + + onPressed: { + if (targetNode == multiSelectionNode) + _generalHelper.restartMultiSelection(); + } + + onDragged: (mouseArea, sceneRelativeDistance)=> { + targetNode.position = localPos(sceneRelativeDistance); + if (targetNode == multiSelectionNode) + _generalHelper.moveMultiSelection(false); + positionMove(); + } + + onReleased: (mouseArea, sceneRelativeDistance)=> { + targetNode.position = localPos(sceneRelativeDistance); + if (targetNode == multiSelectionNode) + _generalHelper.moveMultiSelection(true); + positionCommit(); + } +} |