diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/quick/draganddrop/draganddrop.qrc | 1 | ||||
-rw-r--r-- | examples/quick/draganddrop/views/Icon.qml | 96 | ||||
-rw-r--r-- | examples/quick/draganddrop/views/gridview.qml | 56 |
3 files changed, 109 insertions, 44 deletions
diff --git a/examples/quick/draganddrop/draganddrop.qrc b/examples/quick/draganddrop/draganddrop.qrc index 6d064f7722..df9fec51d2 100644 --- a/examples/quick/draganddrop/draganddrop.qrc +++ b/examples/quick/draganddrop/draganddrop.qrc @@ -5,5 +5,6 @@ <file>tiles/DropTile.qml</file> <file>tiles/tiles.qml</file> <file>views/gridview.qml</file> + <file>views/Icon.qml</file> </qresource> </RCC> diff --git a/examples/quick/draganddrop/views/Icon.qml b/examples/quick/draganddrop/views/Icon.qml new file mode 100644 index 0000000000..261d6d146a --- /dev/null +++ b/examples/quick/draganddrop/views/Icon.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.14 + +Rectangle { + id: icon + required property Item dragParent + + property int visualIndex: 0 + width: 72 + height: 72 + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + radius: 3 + + Text { + anchors.centerIn: parent + color: "white" + text: parent.visualIndex + } + + DragHandler { + id: dragHandler + } + + Drag.active: dragHandler.active + Drag.source: icon + Drag.hotSpot.x: 36 + Drag.hotSpot.y: 36 + + states: [ + State { + when: dragHandler.active + ParentChange { + target: icon + parent: icon.dragParent + } + + AnchorChanges { + target: icon + anchors.horizontalCenter: undefined + anchors.verticalCenter: undefined + } + } + ] +} diff --git a/examples/quick/draganddrop/views/gridview.qml b/examples/quick/draganddrop/views/gridview.qml index 6c5bcef729..05bd48e7fa 100644 --- a/examples/quick/draganddrop/views/gridview.qml +++ b/examples/quick/draganddrop/views/gridview.qml @@ -48,8 +48,9 @@ ** ****************************************************************************/ -import QtQuick 2.12 -import QtQml.Models 2.1 +import QtQml 2.14 +import QtQuick 2.14 +import QtQml.Models 2.14 GridView { id: root @@ -94,54 +95,21 @@ GridView { //! [1] delegate: DropArea { id: delegateRoot + required property color color; width: 80; height: 80 - onEntered: visualModel.items.move(drag.source.visualIndex, icon.visualIndex) + onEntered: function(drag) { + visualModel.items.move((drag.source as Icon).visualIndex, icon.visualIndex) + } + property int visualIndex: DelegateModel.itemsIndex - Binding { target: icon; property: "visualIndex"; value: visualIndex } - Rectangle { + Icon { id: icon - property int visualIndex: 0 - width: 72; height: 72 - anchors { - horizontalCenter: parent.horizontalCenter; - verticalCenter: parent.verticalCenter - } - radius: 3 - color: model.color - - Text { - anchors.centerIn: parent - color: "white" - text: parent.visualIndex - } - - DragHandler { - id: dragHandler - } - - Drag.active: dragHandler.active - Drag.source: icon - Drag.hotSpot.x: 36 - Drag.hotSpot.y: 36 - - states: [ - State { - when: icon.Drag.active - ParentChange { - target: icon - parent: root - } - - AnchorChanges { - target: icon - anchors.horizontalCenter: undefined - anchors.verticalCenter: undefined - } - } - ] + dragParent: root + visualIndex: delegateRoot.visualIndex + color: delegateRoot.color } } //! [1] |