Add DnD support for QNX.

We only need DnD within the same application for now, so returning
a QSimpleDrag is enough.

Change-Id: I842d48f0252f8103fa8632dd3d149ae431658adb
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
bb10
Sergio Martins 2012-10-09 13:00:07 +01:00 committed by The Qt Project
parent 9fc7fcb4c9
commit 935f223440
2 changed files with 25 additions and 3 deletions

View File

@ -89,6 +89,8 @@
#include <QtGui/QOpenGLContext>
#endif
#include <QtPlatformSupport/private/qsimpledrag_p.h>
#include <QtCore/QDebug>
#include <QtCore/QHash>
@ -128,6 +130,9 @@ QQnxIntegration::QQnxIntegration()
#if !defined(QT_NO_CLIPBOARD)
, m_clipboard(0)
#endif
#if !defined(QT_NO_DRAGANDDROP)
, m_drag(new QSimpleDrag())
#endif
{
qIntegrationDebug() << Q_FUNC_INFO;
// Open connection to QNX composition manager
@ -224,6 +229,11 @@ QQnxIntegration::~QQnxIntegration()
qIntegrationDebug() << Q_FUNC_INFO << "platform plugin shutdown begin";
delete m_nativeInterface;
#if !defined(QT_NO_DRAGANDDROP)
// Destroy the drag object
delete m_drag;
#endif
#if defined(QQNX_PPS)
// Destroy the hardware button notifier
delete m_buttonsNotifier;
@ -364,6 +374,13 @@ QPlatformClipboard *QQnxIntegration::clipboard() const
}
#endif
#if !defined(QT_NO_DRAGANDDROP)
QPlatformDrag *QQnxIntegration::drag() const
{
return m_drag;
}
#endif
QVariant QQnxIntegration::styleHint(QPlatformIntegration::StyleHint hint) const
{
qIntegrationDebug() << Q_FUNC_INFO;

View File

@ -62,6 +62,8 @@ class QQnxAbstractNavigator;
class QQnxAbstractVirtualKeyboard;
class QQnxServices;
class QSimpleDrag;
#if defined(QQNX_PPS)
class QQnxInputContext;
class QQnxNavigatorEventNotifier;
@ -105,7 +107,9 @@ public:
#if !defined(QT_NO_CLIPBOARD)
QPlatformClipboard *clipboard() const;
#endif
#if !defined(QT_NO_DRAGANDDROP)
QPlatformDrag *drag() const;
#endif
QVariant styleHint(StyleHint hint) const;
QPlatformServices *services() const;
@ -151,9 +155,10 @@ private:
#if !defined(QT_NO_CLIPBOARD)
mutable QQnxClipboard* m_clipboard;
#endif
QQnxAbstractNavigator *m_navigator;
#if !defined(QT_NO_DRAGANDDROP)
QSimpleDrag *m_drag;
#endif
static QQnxWindowMapper ms_windowMapper;
static QMutex ms_windowMapperMutex;