diff options
Diffstat (limited to 'src/quick/doc/snippets/pointerHandlers/dragHandlerAcceptedButtons.qml')
| -rw-r--r-- | src/quick/doc/snippets/pointerHandlers/dragHandlerAcceptedButtons.qml | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/quick/doc/snippets/pointerHandlers/dragHandlerAcceptedButtons.qml b/src/quick/doc/snippets/pointerHandlers/dragHandlerAcceptedButtons.qml new file mode 100644 index 0000000000..9aeceb04f6 --- /dev/null +++ b/src/quick/doc/snippets/pointerHandlers/dragHandlerAcceptedButtons.qml @@ -0,0 +1,81 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +pragma ComponentBehavior: Bound +import QtQuick +import Qt.labs.animation +import Qt.labs.folderlistmodel + +//![0] +Rectangle { + id: canvas + width: 640 + height: 480 + color: "#333" + property int highestZ: 0 + + Repeater { + model: FolderListModel { nameFilters: ["*.qml"] } + + delegate: Rectangle { + required property string fileName + required property url fileUrl + required property int index + + id: frame + x: index * 30; y: index * 30 + width: 320; height: 240 + property bool dragging: ldh.active || rdh.active + onDraggingChanged: if (dragging) z = ++canvas.highestZ + border { width: 2; color: dragging ? "red" : "steelblue" } + color: "beige" + clip: true + + TextEdit { + // drag to select text + id: textEdit + textDocument.source: frame.fileUrl + x: 3; y: 3 + + BoundaryRule on y { + id: ybr + minimum: textEdit.parent.height - textEdit.height; maximum: 0 + minimumOvershoot: 200; maximumOvershoot: 200 + overshootFilter: BoundaryRule.Peak + } + } + + DragHandler { + id: rdh + // right-drag to position the "window" + acceptedButtons: Qt.RightButton + } + + WheelHandler { + target: textEdit + property: "y" + onActiveChanged: if (!active) ybr.returnToBounds() + } + + Rectangle { + anchors.right: parent.right + width: titleText.implicitWidth + 12 + height: titleText.implicitHeight + 6 + border { width: 2; color: parent.border.color } + bottomLeftRadius: 6 + Text { + id: titleText + color: "saddlebrown" + anchors.centerIn: parent + text: frame.fileName + textFormat: Text.PlainText + } + DragHandler { + id: ldh + // left-drag to position the "window" + target: frame + } + } + } + } +} +//![0] |
