aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/draganddrop
diff options
context:
space:
mode:
authorLeander Beernaert <leander.beernaert@qt.io>2020-01-16 16:25:06 +0100
committerLeander Beernaert <leander.beernaert@qt.io>2020-01-16 16:25:06 +0100
commit1d333d3375874efb8d37df37dc5ef561573794ad (patch)
tree2d8c995f64c05c84c1fcceb2c5cb40fcae69855f /examples/quick/draganddrop
parentb106d86c433706928b0b0c206a0d9f831681e1bf (diff)
parente79a2658cde899d6ee11ec3c0d0a3768eb2c864b (diff)
Merge remote-tracking branch 'origin/dev' into wip/cmake
Diffstat (limited to 'examples/quick/draganddrop')
-rw-r--r--examples/quick/draganddrop/draganddrop.qrc1
-rw-r--r--examples/quick/draganddrop/views/Icon.qml96
-rw-r--r--examples/quick/draganddrop/views/gridview.qml56
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]