From defe68463230b454d3ddfb039ca423c01cddab91 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Mon, 3 May 2021 20:33:56 +0200 Subject: Make PinchArea translate correctly inside a rotated parent Also includes 9dacc312e5b0f5aeb0f8370f4f7722b57754a3c2: fuzzy comparison in the test to avoid failure due to roundoff. Fixes: QTBUG-63673 Change-Id: I91231bb8555b7eb02a9580f9f184b261d8bd44c8 Reviewed-by: Richard Moe Gustavsen (cherry picked from commit 7642205be45135add120373299df02e05f4ffc58) Reviewed-by: Shawn Rutledge --- .../qquickpincharea/data/draggablePinchArea.qml | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 tests/auto/quick/qquickpincharea/data/draggablePinchArea.qml (limited to 'tests/auto/quick/qquickpincharea/data/draggablePinchArea.qml') diff --git a/tests/auto/quick/qquickpincharea/data/draggablePinchArea.qml b/tests/auto/quick/qquickpincharea/data/draggablePinchArea.qml new file mode 100644 index 0000000000..3acf67b4b6 --- /dev/null +++ b/tests/auto/quick/qquickpincharea/data/draggablePinchArea.qml @@ -0,0 +1,70 @@ +import QtQuick 2.12 + +Rectangle { + id: root + width: 600 + height: 600 + + Rectangle { + objectName: "paContainer" + width: parent.width -100 + height: parent.height - 100 + border.color: "black" + anchors.centerIn: parent + transformOrigin: Item.Center + + Rectangle { + width: 300 + height: 300 + color: "tomato" + PinchArea { + id: pa + anchors.fill: parent + pinch.target: parent + pinch.minimumScale: 0.5 + pinch.maximumScale: 2 + pinch.minimumRotation: -360 + pinch.maximumRotation: 360 + pinch.dragAxis: Pinch.XAndYAxis + pinch.minimumX: -100 + pinch.maximumX: 300 + pinch.minimumY: -100 + pinch.maximumY: 300 + } + + + Text { text: "this way up" } + } + } + + // only for touch feedback / troubleshooting + Item { + id: glassPane + z: 10000 + anchors.fill: parent + + PointHandler { + id: ph1 + target: Rectangle { + parent: glassPane + color: "green" + visible: ph1.active + x: ph1.point.position.x - width / 2 + y: ph1.point.position.y - height / 2 + width: 20; height: width; radius: width / 2 + } + } + + PointHandler { + id: ph2 + target: Rectangle { + parent: glassPane + color: "blue" + visible: ph2.active + x: ph2.point.position.x - width / 2 + y: ph2.point.position.y - height / 2 + width: 20; height: width; radius: width / 2 + } + } + } +} -- cgit v1.2.3