diff options
author | Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> | 2018-10-03 13:50:13 +0200 |
---|---|---|
committer | Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> | 2018-10-11 12:36:36 +0000 |
commit | b6f7fe1f80e6beed62ef47691fae6aa9f4a851b8 (patch) | |
tree | 92055e528215632ee4872c1f87793f535746e656 /examples/quick/views/visualdatamodel/dragselection.qml | |
parent | b8f4005f132c26b842387e1ae5f492594dc03d86 (diff) |
Examples: Use XmlHttpRequest to fetch flickr public photos
This change is to facilite moving the XmlListModel code to the
qtxmlpatterns repo, but still keep all the Particles examples
together.
Also fixed:
- the old TODO about darkening images according to depth,
and make it generally look a bit better.
- move the visualdatamodel examples to a directory called
delegatemodel, since that's how they work now. And add them
to the main "views" example launcher so that they become more
visible to users.
Change-Id: I78f9f19e1e110608580adedcf4cd3be554222515
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'examples/quick/views/visualdatamodel/dragselection.qml')
-rw-r--r-- | examples/quick/views/visualdatamodel/dragselection.qml | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/examples/quick/views/visualdatamodel/dragselection.qml b/examples/quick/views/visualdatamodel/dragselection.qml deleted file mode 100644 index 15fd2654c2..0000000000 --- a/examples/quick/views/visualdatamodel/dragselection.qml +++ /dev/null @@ -1,211 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 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.0 -import QtQml.Models 2.1 - -Item { - id: root - - width: 320 - height: 480 - - property bool dragging: false - - Component { - id: packageDelegate - Package { - id: packageRoot - - MouseArea { - id: visibleContainer - Package.name: "visible" - - width: 64 - height: 64 - enabled: packageRoot.DelegateModel.inSelected - - drag.target: draggable - - Item { - id: draggable - - width: 64 - height: 64 - - Drag.active: visibleContainer.drag.active - - anchors { horizontalCenter: parent.horizontalCenter; verticalCenter: parent.verticalCenter } - - states: State { - when: visibleContainer.drag.active - AnchorChanges { target: draggable; anchors { horizontalCenter: undefined; verticalCenter: undefined} } - ParentChange { target: selectionView; parent: draggable; x: 0; y: 0 } - PropertyChanges { target: root; dragging: true } - ParentChange { target: draggable; parent: root } - } - } - DropArea { - anchors.fill: parent - onEntered: selectedItems.move(0, visualModel.items.get(packageRoot.DelegateModel.itemsIndex), selectedItems.count) - } - } - Item { - id: selectionContainer - Package.name: "selection" - - width: 64 - height: 64 - - visible: PathView.onPath - } - Rectangle { - id: content - parent: visibleContainer - - width: 58 - height: 58 - - radius: 8 - - gradient: Gradient { - GradientStop { id: gradientStart; position: 0.0; color: "#8AC953" } - GradientStop { id: gradientEnd; position: 1.0; color: "#8BC953" } - } - - border.width: 2 - border.color: "#007423" - - state: root.dragging && packageRoot.DelegateModel.inSelected ? "selected" : "visible" - - Text { - anchors.fill: parent - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - color: "white" - text: modelData - font.pixelSize: 18 - } - - Rectangle { - anchors { right: parent.right; top: parent.top; margins: 3 } - width: 12; height: 12 - color: packageRoot.DelegateModel.inSelected ? "black" : "white" - radius: 6 - - border.color: "white" - border.width: 2 - - MouseArea { - anchors.fill: parent - onClicked: packageRoot.DelegateModel.inSelected = !packageRoot.DelegateModel.inSelected - } - } - - states: [ - State { - name: "selected" - ParentChange { target: content; parent: selectionContainer; x: 3; y: 3 } - PropertyChanges { target: packageRoot; DelegateModel.inItems: visibleContainer.drag.active } - PropertyChanges { target: gradientStart; color: "#017423" } - PropertyChanges { target: gradientStart; color: "#007423" } - }, State { - name: "visible" - PropertyChanges { target: packageRoot; DelegateModel.inItems: true } - ParentChange { target: content; parent: visibleContainer; x: 3; y: 3 } - PropertyChanges { target: gradientStart; color: "#8AC953" } - PropertyChanges { target: gradientStart; color: "#8BC953" } - } - ] - transitions: Transition { - PropertyAction { target: packageRoot; properties: "DelegateModel.inItems" } - ParentAnimation { - target: content - NumberAnimation { target: content; properties: "x,y"; duration: 500 } - } - ColorAnimation { targets: [gradientStart, gradientEnd]; duration: 500 } - } - } - } - } - - DelegateModel { - id: visualModel - model: 35 - delegate: packageDelegate - - groups: DelegateModelGroup { id: selectedItems; name: "selected" } - - Component.onCompleted: parts.selection.filterOnGroup = "selected" - } - - PathView { - id: selectionView - - height: 64 - width: 64 - - model: visualModel.parts.selection - - path: Path { - startX: 0 - startY: 0 - PathLine { x: 64; y: 64 } - } - } - - GridView { - id: itemsView - anchors { fill: parent } - cellWidth: 64 - cellHeight: 64 - model: visualModel.parts.visible - } -} |