diff options
author | Paul Olav Tvete <paul.tvete@digia.com> | 2014-05-26 14:04:16 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-27 14:59:49 +0200 |
commit | 0bc54d362e9f11c8bca8e8d5415d3a112896fb84 (patch) | |
tree | 7beb6846288ce7e2f8adefd0684db095388be38b /src/quickwidgets | |
parent | 8d18d4d68fb59f4fa2614861e582d705dbd0b10e (diff) |
QQuickWidget: Support drag and drop
Relay drag/drop events to the offscreen QQuickWindow.
Task-number: QTBUG-39167
Change-Id: Iaf59fb899d16ac96fc94f1df8c3a939e9bd0f92f
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src/quickwidgets')
-rw-r--r-- | src/quickwidgets/qquickwidget.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index 687aeabfe5..b25912a1de 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -107,6 +107,10 @@ void QQuickWidgetPrivate::init(QQmlEngine* e) if (QQmlDebugService::isDebuggingEnabled()) QQmlInspectorService::instance()->addView(q); +#ifndef QT_NO_DRAGANDDROP + q->setAcceptDrops(true); +#endif + QWidget::connect(offscreenWindow, SIGNAL(sceneGraphInitialized()), q, SLOT(createFramebufferObject())); QWidget::connect(offscreenWindow, SIGNAL(sceneGraphInvalidated()), q, SLOT(destroyFramebufferObject())); QObject::connect(renderControl, SIGNAL(renderRequested()), q, SLOT(triggerUpdate())); @@ -960,13 +964,22 @@ void QQuickWidget::focusOutEvent(QFocusEvent * event) d->offscreenWindow->focusOutEvent(event); } - /*! \reimp */ bool QQuickWidget::event(QEvent *e) { Q_D(QQuickWidget); switch (e->type()) { +#ifndef QT_NO_DRAGANDDROP + case QEvent::Drop: + case QEvent::DragEnter: + 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(); +#endif case QEvent::TouchBegin: case QEvent::TouchEnd: case QEvent::TouchUpdate: |