aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickwidgets/qquickwidget.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-01-16 15:05:19 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-02-11 16:27:26 +0000
commit05c9d6ecddce7bf9b5cc74a2ce6f57fbc9d748fc (patch)
tree17acd60be857a1baf0ef032a732977bcc110de80 /src/quickwidgets/qquickwidget.cpp
parent08bd120f012949199ee0c1d20d42a628af01289e (diff)
Implement dnd support in QQuickWidget differently
This way subclasses can reimplement functions like dragEnterEvent(). Task-number: QTBUG-43821 Change-Id: I24bd14de8aab5ab741bc36330b4dcf7c83dedbf6 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/quickwidgets/qquickwidget.cpp')
-rw-r--r--src/quickwidgets/qquickwidget.cpp51
1 files changed, 36 insertions, 15 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp
index 6143e4ef0d..d417f020c3 100644
--- a/src/quickwidgets/qquickwidget.cpp
+++ b/src/quickwidgets/qquickwidget.cpp
@@ -1076,21 +1076,6 @@ bool QQuickWidget::event(QEvent *e)
Q_D(QQuickWidget);
switch (e->type()) {
-#ifndef QT_NO_DRAGANDDROP
- case QEvent::Drop:
- case QEvent::DragMove:
- case QEvent::DragLeave:
- // Drag/drop events only have local pos, so no need to map,
- // but QQuickWindow::event() does not return true
- d->offscreenWindow->event(e);
- return e->isAccepted();
- case QEvent::DragEnter:
- // Don't reject drag events for the entire widget when one
- // item rejects the drag enter
- d->offscreenWindow->event(e);
- e->accept();
- return true;
-#endif
case QEvent::InputMethod:
case QEvent::InputMethodQuery:
@@ -1121,6 +1106,42 @@ bool QQuickWidget::event(QEvent *e)
return QWidget::event(e);
}
+#ifndef QT_NO_DRAGANDDROP
+
+/*! \reimp */
+void QQuickWidget::dragEnterEvent(QDragEnterEvent *e)
+{
+ Q_D(QQuickWidget);
+ // Don't reject drag events for the entire widget when one
+ // item rejects the drag enter
+ d->offscreenWindow->event(e);
+ e->accept();
+}
+
+/*! \reimp */
+void QQuickWidget::dragMoveEvent(QDragMoveEvent *e)
+{
+ Q_D(QQuickWidget);
+ // Drag/drop events only have local pos, so no need to map,
+ // but QQuickWindow::event() does not return true
+ d->offscreenWindow->event(e);
+}
+
+/*! \reimp */
+void QQuickWidget::dragLeaveEvent(QDragLeaveEvent *e)
+{
+ Q_D(QQuickWidget);
+ d->offscreenWindow->event(e);
+}
+
+/*! \reimp */
+void QQuickWidget::dropEvent(QDropEvent *e)
+{
+ Q_D(QQuickWidget);
+ d->offscreenWindow->event(e);
+}
+
+#endif // QT_NO_DRAGANDDROP
// TODO: try to separate the two cases of
// 1. render() unconditionally without sync