aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/externaldraganddrop
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quick/externaldraganddrop')
-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."
}
-
}
}