diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-06-09 18:29:50 +1000 |
---|---|---|
committer | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-06-09 18:29:50 +1000 |
commit | 73081387d84c4b77dafeda927d1fc1ebee6cfdf2 (patch) | |
tree | ce963197bc30cd034f7ddba95980ce300486bf6d /src/declarative/items/qsgitem.cpp | |
parent | 206a299923ca985b9ab8b47550f55a74f5473157 (diff) |
Add a DragTarget element.
Provides an area that can be used to handle events when other items are
dragged over it.
Task-number: QMLNG-32
Diffstat (limited to 'src/declarative/items/qsgitem.cpp')
-rw-r--r-- | src/declarative/items/qsgitem.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/declarative/items/qsgitem.cpp b/src/declarative/items/qsgitem.cpp index f2d26955aa..328da16ff4 100644 --- a/src/declarative/items/qsgitem.cpp +++ b/src/declarative/items/qsgitem.cpp @@ -45,6 +45,7 @@ #include "qsgcanvas.h" #include <QtScript/qscriptengine.h> #include "qsgcanvas_p.h" +#include "qsgevent.h" #include "qsgevents_p_p.h" @@ -1689,6 +1690,26 @@ void QSGItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) Q_UNUSED(event); } +void QSGItem::dragMoveEvent(QSGDragEvent *event) +{ + event->setAccepted(false); +} + +void QSGItem::dragEnterEvent(QSGDragEvent *event) +{ + event->setAccepted(false); +} + +void QSGItem::dragExitEvent(QSGDragEvent *event) +{ + event->setAccepted(false); +} + +void QSGItem::dragDropEvent(QSGDragEvent *event) +{ + event->setAccepted(false); +} + bool QSGItem::childMouseEventFilter(QSGItem *, QEvent *) { return false; @@ -2151,6 +2172,27 @@ void QSGItemPrivate::deliverHoverEvent(QGraphicsSceneHoverEvent *e) } } +void QSGItemPrivate::deliverDragEvent(QSGDragEvent *e) +{ + Q_Q(QSGItem); + switch (e->type()) { + default: + Q_ASSERT(!"Unknown event type"); + case QSGEvent::SGDragEnter: + q->dragEnterEvent(e); + break; + case QSGEvent::SGDragExit: + q->dragExitEvent(e); + break; + case QSGEvent::SGDragMove: + q->dragMoveEvent(e); + break; + case QSGEvent::SGDragDrop: + q->dragDropEvent(e); + break; + } +} + void QSGItem::itemChange(ItemChange change, const ItemChangeData &value) { Q_UNUSED(change); |