summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@digia.com>2013-05-23 12:44:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-30 12:49:51 +0200
commit1df7a6a50a794721edb1bc63d268378f4f0ed7c4 (patch)
treee20fad557bfd4a3f65f41c5b5a50633a074178da /src
parent853a0b764e08d5f910072b6f3fd3ff3f9dc5c0c4 (diff)
Move QBasicDrag and QSimpleDrag to QtGui.
These are useful as default implementations of QPlatformIntegration::drag(), instead of having it return 0 which will lead to crashes in Qt Quick 2 and widgets applications that use drag and drop. Task-number: QTBUG-31288 Change-Id: I70efa139306ced5d879def0f74e3a72d3bcd64f7 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/kernel.pri4
-rw-r--r--src/gui/kernel/qplatformintegration.cpp7
-rw-r--r--src/gui/kernel/qshapedpixmapdndwindow.cpp (renamed from src/platformsupport/dnd/qshapedpixmapdndwindow.cpp)0
-rw-r--r--src/gui/kernel/qshapedpixmapdndwindow_p.h (renamed from src/platformsupport/dnd/qshapedpixmapdndwindow_p.h)0
-rw-r--r--src/gui/kernel/qsimpledrag.cpp (renamed from src/platformsupport/dnd/qsimpledrag.cpp)2
-rw-r--r--src/gui/kernel/qsimpledrag_p.h (renamed from src/platformsupport/dnd/qsimpledrag_p.h)4
-rw-r--r--src/platformsupport/dnd/dnd.pri6
-rw-r--r--src/platformsupport/platformsupport.pro1
-rw-r--r--src/plugins/platforms/cocoa/qcocoadrag.h2
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.cpp2
-rw-r--r--src/plugins/platforms/xcb/qxcbdrag.cpp4
-rw-r--r--src/plugins/platforms/xcb/qxcbdrag.h2
12 files changed, 18 insertions, 16 deletions
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri
index 91374fe2dd..3c019fc5b5 100644
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
@@ -31,6 +31,8 @@ HEADERS += \
kernel/qplatformclipboard.h \
kernel/qplatformnativeinterface.h \
kernel/qplatformmenu.h \
+ kernel/qshapedpixmapdndwindow_p.h \
+ kernel/qsimpledrag_p.h \
kernel/qsurfaceformat.h \
kernel/qguiapplication.h \
kernel/qguiapplication_p.h \
@@ -89,6 +91,8 @@ SOURCES += \
kernel/qplatformclipboard.cpp \
kernel/qplatformnativeinterface.cpp \
kernel/qsessionmanager.cpp \
+ kernel/qshapedpixmapdndwindow.cpp \
+ kernel/qsimpledrag.cpp \
kernel/qsurfaceformat.cpp \
kernel/qguiapplication.cpp \
kernel/qwindow.cpp \
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp
index e82e30df80..e4f45ebb6e 100644
--- a/src/gui/kernel/qplatformintegration.cpp
+++ b/src/gui/kernel/qplatformintegration.cpp
@@ -49,6 +49,7 @@
#include <QtGui/private/qpixmap_raster_p.h>
#include <qpa/qplatformscreen_p.h>
#include <private/qdnd_p.h>
+#include <private/qsimpledrag_p.h>
QT_BEGIN_NAMESPACE
@@ -99,7 +100,11 @@ QPlatformClipboard *QPlatformIntegration::clipboard() const
*/
QPlatformDrag *QPlatformIntegration::drag() const
{
- return 0;
+ static QSimpleDrag *drag = 0;
+ if (!drag) {
+ drag = new QSimpleDrag;
+ }
+ return drag;
}
#endif
diff --git a/src/platformsupport/dnd/qshapedpixmapdndwindow.cpp b/src/gui/kernel/qshapedpixmapdndwindow.cpp
index b3e64b01d0..b3e64b01d0 100644
--- a/src/platformsupport/dnd/qshapedpixmapdndwindow.cpp
+++ b/src/gui/kernel/qshapedpixmapdndwindow.cpp
diff --git a/src/platformsupport/dnd/qshapedpixmapdndwindow_p.h b/src/gui/kernel/qshapedpixmapdndwindow_p.h
index 20674b6b19..20674b6b19 100644
--- a/src/platformsupport/dnd/qshapedpixmapdndwindow_p.h
+++ b/src/gui/kernel/qshapedpixmapdndwindow_p.h
diff --git a/src/platformsupport/dnd/qsimpledrag.cpp b/src/gui/kernel/qsimpledrag.cpp
index f2ff177055..f6912a2d57 100644
--- a/src/platformsupport/dnd/qsimpledrag.cpp
+++ b/src/gui/kernel/qsimpledrag.cpp
@@ -62,7 +62,7 @@
#include <private/qguiapplication_p.h>
#include <private/qdnd_p.h>
-#include <QtPlatformSupport/private/qshapedpixmapdndwindow_p.h>
+#include <private/qshapedpixmapdndwindow_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/platformsupport/dnd/qsimpledrag_p.h b/src/gui/kernel/qsimpledrag_p.h
index 10237b36d7..36ea4c1ec5 100644
--- a/src/platformsupport/dnd/qsimpledrag_p.h
+++ b/src/gui/kernel/qsimpledrag_p.h
@@ -56,7 +56,7 @@ class QEventLoop;
class QDropData;
class QShapedPixmapWindow;
-class QBasicDrag : public QPlatformDrag, public QObject
+class Q_GUI_EXPORT QBasicDrag : public QPlatformDrag, public QObject
{
public:
virtual ~QBasicDrag();
@@ -99,7 +99,7 @@ private:
QShapedPixmapWindow *m_drag_icon_window;
};
-class QSimpleDrag : public QBasicDrag
+class Q_GUI_EXPORT QSimpleDrag : public QBasicDrag
{
public:
QSimpleDrag();
diff --git a/src/platformsupport/dnd/dnd.pri b/src/platformsupport/dnd/dnd.pri
deleted file mode 100644
index 47feb81ef2..0000000000
--- a/src/platformsupport/dnd/dnd.pri
+++ /dev/null
@@ -1,6 +0,0 @@
-HEADERS += \
- $$PWD/qsimpledrag_p.h \
- $$PWD/qshapedpixmapdndwindow_p.h
-SOURCES += \
- $$PWD/qsimpledrag.cpp \
- $$PWD/qshapedpixmapdndwindow.cpp
diff --git a/src/platformsupport/platformsupport.pro b/src/platformsupport/platformsupport.pro
index 4cb1f2c1bf..da87f395fd 100644
--- a/src/platformsupport/platformsupport.pro
+++ b/src/platformsupport/platformsupport.pro
@@ -9,7 +9,6 @@ PRECOMPILED_HEADER = ../corelib/global/qt_pch.h
include(cfsocketnotifier/cfsocketnotifier.pri)
include(cglconvenience/cglconvenience.pri)
-include(dnd/dnd.pri)
include(eglconvenience/eglconvenience.pri)
include(eventdispatchers/eventdispatchers.pri)
include(fbconvenience/fbconvenience.pri)
diff --git a/src/plugins/platforms/cocoa/qcocoadrag.h b/src/plugins/platforms/cocoa/qcocoadrag.h
index 6e29fd1a78..80259df600 100644
--- a/src/plugins/platforms/cocoa/qcocoadrag.h
+++ b/src/plugins/platforms/cocoa/qcocoadrag.h
@@ -45,7 +45,7 @@
#include <Cocoa/Cocoa.h>
#include <QtGui>
#include <qpa/qplatformdrag.h>
-#include <QtPlatformSupport/private/qsimpledrag_p.h>
+#include <private/qsimpledrag_p.h>
#include <QtGui/private/qdnd_p.h>
diff --git a/src/plugins/platforms/qnx/qqnxintegration.cpp b/src/plugins/platforms/qnx/qqnxintegration.cpp
index 072f60dff8..feb05e3093 100644
--- a/src/plugins/platforms/qnx/qqnxintegration.cpp
+++ b/src/plugins/platforms/qnx/qqnxintegration.cpp
@@ -89,7 +89,7 @@
#include <QtGui/QOpenGLContext>
#endif
-#include <QtPlatformSupport/private/qsimpledrag_p.h>
+#include <private/qsimpledrag_p.h>
#include <QtCore/QDebug>
#include <QtCore/QHash>
diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp
index db736cef4e..4961e0377c 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.cpp
+++ b/src/plugins/platforms/xcb/qxcbdrag.cpp
@@ -57,8 +57,8 @@
#include <qpa/qwindowsysteminterface.h>
-#include <QtPlatformSupport/private/qshapedpixmapdndwindow_p.h>
-#include <QtPlatformSupport/private/qsimpledrag_p.h>
+#include <private/qshapedpixmapdndwindow_p.h>
+#include <private/qsimpledrag_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/platforms/xcb/qxcbdrag.h b/src/plugins/platforms/xcb/qxcbdrag.h
index 5678c2d303..5648f70d9e 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.h
+++ b/src/plugins/platforms/xcb/qxcbdrag.h
@@ -43,7 +43,7 @@
#define QXCBDRAG_H
#include <qpa/qplatformdrag.h>
-#include <QtPlatformSupport/private/qsimpledrag_p.h>
+#include <private/qsimpledrag_p.h>
#include <qxcbobject.h>
#include <xcb/xcb.h>
#include <qlist.h>