summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2017-03-01 09:10:50 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2017-12-27 14:57:09 +0000
commit6f6fa9ee929292639a24f2b15c432a41df92610d (patch)
tree25d279bbd24f9fced09e7f9a751dcff1e0981a05 /examples
parent6c5b2c367d7cfc92563986b35c99f410f2ac42aa (diff)
externaldraganddrop example: add checkbox to control accepting drop
DropArea.onEntered can reject the drop - this will provide cursor and color change feedback showing whether dropping is allowed. Change-Id: I2203cda79cf381bbb71724cdcd6aecd8f001d62d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'examples')
-rw-r--r--examples/quick/externaldraganddrop/DragAndDropTextItem.qml46
-rw-r--r--examples/quick/externaldraganddrop/externaldraganddrop.pro3
-rw-r--r--examples/quick/externaldraganddrop/externaldraganddrop.qml2
3 files changed, 28 insertions, 23 deletions
diff --git a/examples/quick/externaldraganddrop/DragAndDropTextItem.qml b/examples/quick/externaldraganddrop/DragAndDropTextItem.qml
index 7499c83e6d..9858a961c9 100644
--- a/examples/quick/externaldraganddrop/DragAndDropTextItem.qml
+++ b/examples/quick/externaldraganddrop/DragAndDropTextItem.qml
@@ -49,32 +49,36 @@
****************************************************************************/
import QtQuick 2.2
+import "../shared" as Examples
Rectangle {
id: item
property string display
- color: "#EEE"
+ property alias dropEnabled: acceptDropCB.checked
+ color: dropArea.containsDrag ? "#CFC" : "#EEE"
+ ColorAnimation on color {
+ id: rejectAnimation
+ from: "#FCC"
+ to: "#EEE"
+ duration: 1000
+ }
Text {
anchors.fill: parent
text: item.display
wrapMode: Text.WordWrap
}
DropArea {
+ id: dropArea
anchors.fill: parent
keys: ["text/plain"]
- onEntered: {
- item.color = "#FCC"
- }
- onExited: {
- item.color = "#EEE"
+ onEntered: if (!acceptDropCB.checked) {
+ drag.accepted = false
+ rejectAnimation.start()
}
- onDropped: {
- item.color = "#EEE"
- if (drop.hasText) {
- if (drop.proposedAction == Qt.MoveAction || drop.proposedAction == Qt.CopyAction) {
- item.display = drop.text
- drop.acceptProposedAction()
- }
+ onDropped: if (drop.hasText && acceptDropCB.checked) {
+ if (drop.proposedAction == Qt.MoveAction || drop.proposedAction == Qt.CopyAction) {
+ item.display = drop.text
+ drop.acceptProposedAction()
}
}
}
@@ -91,12 +95,12 @@ Rectangle {
Drag.hotSpot.y: 0
Drag.mimeData: { "text/plain": item.display }
Drag.dragType: Drag.Automatic
- Drag.onDragStarted: {
- }
- Drag.onDragFinished: {
- if (dropAction == Qt.MoveAction) {
- item.display = ""
- }
- }
- } // Item
+ Drag.onDragFinished: if (dropAction == Qt.MoveAction) item.display = ""
+ }
+ Examples.CheckBox {
+ id: acceptDropCB
+ anchors.right: parent.right
+ checked: true
+ text: "accept drop"
+ }
}
diff --git a/examples/quick/externaldraganddrop/externaldraganddrop.pro b/examples/quick/externaldraganddrop/externaldraganddrop.pro
index 646781e7d1..0a592a84f3 100644
--- a/examples/quick/externaldraganddrop/externaldraganddrop.pro
+++ b/examples/quick/externaldraganddrop/externaldraganddrop.pro
@@ -2,9 +2,10 @@ TEMPLATE = app
QT += quick qml
SOURCES += main.cpp
-RESOURCES += externaldraganddrop.qrc
+RESOURCES += externaldraganddrop.qrc ../shared/shared.qrc
EXAMPLE_FILES = \
+ externaldraganddrop.qml \
DragAndDropTextItem.qml
target.path = $$[QT_INSTALL_EXAMPLES]/quick/externaldraganddrop
diff --git a/examples/quick/externaldraganddrop/externaldraganddrop.qml b/examples/quick/externaldraganddrop/externaldraganddrop.qml
index 9c33d1e468..47a76a259a 100644
--- a/examples/quick/externaldraganddrop/externaldraganddrop.qml
+++ b/examples/quick/externaldraganddrop/externaldraganddrop.qml
@@ -82,8 +82,8 @@ Item {
DragAndDropTextItem {
Layout.fillWidth: true
height: 142
+ dropEnabled: false
display: "Drag out into other applications."
}
-
}
}