Skip to content

Commit

Permalink
Update drag and drop examples to new guidelines
Browse files Browse the repository at this point in the history
Change-Id: Ib09a50015eaf7e79f21ade5df3cbd3b58b89c83d
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
  • Loading branch information
Alan Alpert authored and Qt by Nokia committed Feb 28, 2012
1 parent 75a0d33 commit 7d32bac
Show file tree
Hide file tree
Showing 9 changed files with 157 additions and 27 deletions.
10 changes: 10 additions & 0 deletions examples/qtquick/draganddrop/draganddrop.pro
@@ -0,0 +1,10 @@
TEMPLATE = app

QT += quick declarative
SOURCES += main.cpp

target.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qtquick/draganddrop
qml.files = draganddrop.qml tiles views
qml.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qtquick/draganddrop
INSTALLS += target qml

68 changes: 68 additions & 0 deletions examples/qtquick/draganddrop/draganddrop.qml
@@ -0,0 +1,68 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** 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 Nokia Corporation and its Subsidiary(-ies) 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 "../../shared" as Examples

/*!
\title QtQuick Examples - Drag and Drop
\example qtquick/draganddrop
\brief This is a collection of QML drag and drop examples
\image qml-draganddrop-example.png
This is a collection of small QML examples relating to drag and drop functionality.
Tiles adds drag and drog to simple rectangles, which you can drag into a specific grid.
GridView adds drag and drog to a GridView, allowing you to reorder the list.
*/

Item {
height: 480
width: 320
Examples.LauncherList {
id: ll
anchors.fill: parent
Component.onCompleted: {
addExample("Tiles", "", Qt.resolvedUrl("tiles/tiles.qml"));
addExample("GridView", "", Qt.resolvedUrl("views/gridview.qml"));
}
}
}
@@ -1,7 +1,9 @@
import QmlProject 1.0

Project {
mainFile: "draganddrop.qml"
/* Include .qml, .js, and image files from current directory and subdirectories */

QmlFiles {
directory: "."
}
Expand Down
41 changes: 41 additions & 0 deletions examples/qtquick/draganddrop/main.cpp
@@ -0,0 +1,41 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** 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 Nokia Corporation and its Subsidiary(-ies) 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$
**
****************************************************************************/
#include "../../shared/shared.h"
DECLARATIVE_EXAMPLE_MAIN(draganddrop)
15 changes: 8 additions & 7 deletions examples/qtquick/draganddrop/tiles/DragTile.qml
Expand Up @@ -44,12 +44,12 @@ Item {
id: root
property string colorKey

width: 100; height: 100
width: 64; height: 64

MouseArea {
id: mouseArea

width: 100; height: 100
width: 64; height: 64
anchors.centerIn: parent

drag.target: tile
Expand All @@ -59,20 +59,21 @@ Item {
Rectangle {
id: tile

width: 100; height: 100
width: 64; height: 64
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter

anchors.horizontalCenter: parent.horizontalCenter; anchors.verticalCenter: parent.verticalCenter
color: colorKey

Drag.keys: [ colorKey ]
Drag.active: mouseArea.drag.active
Drag.hotSpot.x: 50
Drag.hotSpot.y: 50
Drag.hotSpot.x: 32
Drag.hotSpot.y: 32

Text {
anchors.fill: parent
color: "white"
font.pixelSize: 90
font.pixelSize: 48
text: modelData + 1
horizontalAlignment:Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
Expand Down
2 changes: 1 addition & 1 deletion examples/qtquick/draganddrop/tiles/DropTile.qml
Expand Up @@ -46,7 +46,7 @@ DropArea {
property string colorKey
property alias dropProxy: dragTarget

width: 100; height: 100
width: 64; height: 64
keys: [ colorKey ]

Rectangle {
Expand Down
20 changes: 10 additions & 10 deletions examples/qtquick/draganddrop/tiles/tiles.qml
Expand Up @@ -43,8 +43,8 @@ import QtQuick 2.0
Rectangle {
id: root

width: 620
height: 410
width: 320
height: 480

color: "black"

Expand All @@ -53,8 +53,8 @@ Rectangle {

anchors.left: redSource.right; anchors.top: parent.top;
anchors.margins: 5
width: 300
height: 300
width: 64*3
height: 64*3
opacity: 0.5
columns: 3

Expand All @@ -67,8 +67,8 @@ Rectangle {
Grid {
anchors.right: blueSource.left; anchors.bottom: parent.bottom;
anchors.margins: 5
width: 300
height: 300
width: 64*3
height: 64*3

opacity: 0.5

Expand All @@ -85,8 +85,8 @@ Rectangle {

anchors.left: parent.left; anchors.top: parent.top; anchors.bottom: parent.bottom
anchors.margins: 5
width: 100
spacing: -60
width: 64
spacing: -16

Repeater {
model: 9
Expand All @@ -98,8 +98,8 @@ Rectangle {

anchors.right: parent.right; anchors.top: parent.top; anchors.bottom: parent.bottom
anchors.margins: 5
width: 100
spacing: -60
width: 64
spacing: -16

Repeater {
model: 9
Expand Down
22 changes: 15 additions & 7 deletions examples/qtquick/draganddrop/views/gridview.qml
Expand Up @@ -42,8 +42,8 @@ import QtQuick 2.0

GridView {
id: root
width: 360; height: 360
cellWidth: 90; cellHeight: 90
width: 320; height: 480
cellWidth: 80; cellHeight: 80

model: VisualDataModel {
id: visualModel
Expand All @@ -61,23 +61,31 @@ GridView {
ListElement { color: "aquamarine" }
ListElement { color: "indigo" }
ListElement { color: "black" }
ListElement { color: "chartreuse" }
ListElement { color: "lightsteelblue" }
ListElement { color: "violet" }
ListElement { color: "grey" }
ListElement { color: "springgreen" }
ListElement { color: "salmon" }
ListElement { color: "blanchedalmond" }
ListElement { color: "forestgreen" }
ListElement { color: "pink" }
ListElement { color: "navy" }
ListElement { color: "goldenrod" }
ListElement { color: "crimson" }
ListElement { color: "teal" }
}

delegate: MouseArea {
id: delegateRoot

property int visualIndex: VisualDataModel.itemsIndex

width: 90; height: 90
width: 80; height: 80
drag.target: icon

Rectangle {
id: icon
width: 80; height: 80
width: 72; height: 72
anchors {
horizontalCenter: parent.horizontalCenter;
verticalCenter: parent.verticalCenter
Expand All @@ -87,8 +95,8 @@ GridView {

Drag.active: delegateRoot.pressed
Drag.source: delegateRoot
Drag.hotSpot.x: 40
Drag.hotSpot.y: 40
Drag.hotSpot.x: 36
Drag.hotSpot.y: 36

states: [
State {
Expand Down
4 changes: 2 additions & 2 deletions examples/qtquick/qtquick.pro
@@ -1,8 +1,8 @@
TEMPLATE = subdirs
SUBDIRS = accessibility \
animation
animation \
draganddrop
#canvas \
#draganddrop \
#imageelements \
#keyinteraction \
#modelviews \
Expand Down

0 comments on commit 7d32bac

Please sign in to comment.