aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml')
-rw-r--r--src/tools/qml2puppet/mockfiles/qt6/PlanarMoveHandle.qml42
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();
+ }
+}