| /**************************************************************************** |
| ** |
| ** Copyright (C) 2019 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the manual tests of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 3 as published by the Free Software |
| ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| import QtQuick 2.15 |
| import "content" |
| |
| Rectangle { |
| id: root |
| width: 600; height: 480; color: "#f0f0f0" |
| |
| property int globalGesturePolicy : TapHandler.DragThreshold |
| |
| Flickable { |
| id: flick |
| anchors.fill: parent |
| contentHeight: 600 |
| contentWidth: 1000 |
| objectName: "Flick" |
| |
| Repeater { |
| model: flick.contentHeight/200 |
| Rectangle { |
| width: flick.contentWidth |
| height: 101 |
| x: 0 |
| y: index * 200 |
| border.color: "#808080" |
| border.width: 1 |
| color: "transparent" |
| } |
| } |
| |
| Repeater { |
| model: flick.contentWidth/200 |
| Rectangle { |
| width: 101 |
| height: flick.contentHeight |
| x: index * 200 |
| y: 0 |
| border.color: "#808080" |
| border.width: 1 |
| color: "transparent" |
| } |
| } |
| |
| TextBox { |
| x: 0; y: 0 |
| width: 100; height: 100 |
| label: "DragHandler" |
| objectName: "dragSquircle1" |
| DragHandler { |
| dragThreshold: ckZeroDragThreshold1.checked ? 0 : undefined |
| } |
| CheckBox { |
| id: ckZeroDragThreshold1 |
| label: " Zero threshold" |
| anchors.horizontalCenter: parent.horizontalCenter |
| y: 20 |
| checked: false |
| } |
| } |
| |
| TextBox { |
| x: 100; y: 0 |
| width: 100; height: 100 |
| label: "TapHandler" |
| color: queryColor(tap1.pressed) |
| |
| TapHandler { |
| id: tap1 |
| gesturePolicy: root.globalGesturePolicy |
| } |
| } |
| |
| TextBox { |
| x: 200; y: 0 |
| width: 100; height: 100 |
| label: "TapHandler\nDragHandler" |
| color: queryColor(tap2.pressed) |
| TapHandler { |
| id: tap2 |
| gesturePolicy: root.globalGesturePolicy |
| } |
| DragHandler { |
| dragThreshold: ckZeroDragThreshold2.checked ? 0 : undefined |
| } |
| CheckBox { |
| id: ckZeroDragThreshold2 |
| label: " Zero threshold" |
| anchors.horizontalCenter: parent.horizontalCenter |
| y: 32 |
| checked: false |
| } |
| } |
| |
| TextBox { |
| x: 300; y: 0 |
| width: 100; height: 100 |
| label: "DragHandler\nTapHandler" |
| color: queryColor(tap3.pressed) |
| DragHandler { |
| dragThreshold: ckZeroDragThreshold3.checked ? 0 : undefined |
| } |
| CheckBox { |
| id: ckZeroDragThreshold3 |
| label: " Zero threshold" |
| anchors.horizontalCenter: parent.horizontalCenter |
| y: 32 |
| checked: false |
| } |
| TapHandler { |
| id: tap3 |
| gesturePolicy: root.globalGesturePolicy |
| } |
| } |
| |
| TextBox { |
| x: 400; y: 0 |
| width: 100; height: 100 |
| label: "DragHandler" |
| DragHandler { |
| dragThreshold: ckZeroDragThreshold4.checked ? 0 : undefined |
| } |
| CheckBox { |
| id: ckZeroDragThreshold4 |
| label: " Zero threshold" |
| anchors.horizontalCenter: parent.horizontalCenter |
| y: 20 |
| checked: false |
| } |
| |
| TextBox { |
| label: "TapHandler" |
| x: (parent.width - width)/2 |
| y: 60 |
| color: queryColor(tap4.pressed) |
| TapHandler { |
| id: tap4 |
| gesturePolicy: root.globalGesturePolicy |
| } |
| } |
| } |
| |
| TextBox { |
| objectName: "dragSquircle5" |
| x: 500; y: 0 |
| width: 100; height: 100 |
| label: "TapHandler" |
| color: queryColor(tap5.pressed) |
| CheckBox { |
| id: ckGreedyDrag |
| x: 10 |
| anchors.bottom: dragRect5.top |
| label: " Greedy ↓" |
| checked: true |
| } |
| CheckBox { |
| id: ckZeroDragThreshold5 |
| label: " Zero threshold" |
| x: 10 |
| anchors.bottom: ckGreedyDrag.top |
| checked: false |
| } |
| TapHandler { |
| id: tap5 |
| gesturePolicy: root.globalGesturePolicy |
| } |
| |
| TextBox { |
| id: dragRect5 |
| objectName: "dragRect5" |
| label: "DragHandler" |
| x: (parent.width - width)/2 |
| y: 60 |
| DragHandler { |
| grabPermissions: ckGreedyDrag ? DragHandler.CanTakeOverFromAnything : |
| DragHandler.CanTakeOverFromItems | DragHandler.CanTakeOverFromHandlersOfDifferentType | DragHandler.ApprovesTakeOverByAnything |
| dragThreshold: ckZeroDragThreshold5.checked ? 0 : undefined |
| } |
| } |
| } |
| |
| |
| TextBox { |
| x: 0; y: 100 |
| width: 100; height: 100 |
| label: "No MouseArea" |
| |
| TextBox { |
| objectName: "dragRect01" |
| label: "DragHandler" |
| x: (parent.width - width)/2 |
| y: 60 |
| DragHandler { |
| dragThreshold: ckZeroDragThreshold6.checked ? 0 : undefined |
| } |
| } |
| CheckBox { |
| id: ckZeroDragThreshold6 |
| label: " Zero threshold" |
| anchors.horizontalCenter: parent.horizontalCenter |
| y: 20 |
| checked: false |
| } |
| } |
| |
| TextBox { |
| id: r2 |
| label: "MouseArea" |
| x: 100; y: 100 |
| width: 100; height: 100 |
| |
| MouseArea { |
| id: ma |
| enabled: ckEnabled.checked |
| drag.target: ckDrag.checked ? r2 : undefined |
| drag.threshold: ckExtendDragThreshold.checked ? 50 : undefined |
| anchors.fill: parent |
| } |
| Column { |
| anchors.bottom: parent.bottom |
| anchors.bottomMargin: 10 |
| x: 10 |
| CheckBox { |
| id: ckEnabled |
| label: " Enabled" |
| checked: true |
| } |
| |
| CheckBox { |
| id: ckDrag |
| label: " Drag" |
| checked: true |
| } |
| |
| CheckBox { |
| id: ckExtendDragThreshold |
| label: " Extend threshold" |
| checked: false |
| } |
| } |
| } |
| } |
| } |