Fix compilation of Minimalplugin, add documentation.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Fri, 29 Jul 2011 07:47:19 +0000 (09:47 +0200)
committerJørgen Lind <jorgen.lind@nokia.com>
Fri, 29 Jul 2011 07:50:44 +0000 (09:50 +0200)
Change-Id: I3b40eed781905610cc3062d25dcccf5f760de1f0
Reviewed-on: http://codereview.qt.nokia.com/2382
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
src/gui/kernel/qplatformintegration_qpa.cpp
src/plugins/platforms/minimal/qminimalintegration.cpp
src/plugins/platforms/minimal/qminimalintegration.h

index ec12ef1..04f1bd3 100644 (file)
@@ -171,11 +171,15 @@ QPlatformNativeInterface * QPlatformIntegration::nativeInterface() const
 */
 
 /*!
-    \fn QAbstractEventDispatcher *createEventDispatcher() const
 
-    Factory function for the event dispatcher. The platform plugin
-    must create and and return a QAbstractEventDispatcher subclass when
-    this function is called.
+    \fn QAbstractEventDispatcher *guiThreadEventDispatcher() const = 0
+
+    Accessor function for the event dispatcher. The platform plugin should create
+    an instance of the QAbstractEventDispatcher in its constructor and set it
+    on the application using QGuiApplicationPrivate::instance()->setEventDispatcher().
+    The event dispatcher is owned by QGuiApplication, the accessor should return
+    a flat pointer.
+    \sa QGuiApplicationPrivate
 */
 
 bool QPlatformIntegration::hasCapability(Capability cap) const
index 8d8e5e7..2f2da69 100644 (file)
 #endif
 
 #include <QtGui/private/qpixmap_raster_p.h>
+#include <QtGui/private/qguiapplication_p.h>
 #include <QtGui/QPlatformWindow>
 
-QMinimalIntegration::QMinimalIntegration()
+QT_BEGIN_NAMESPACE
+
+QMinimalIntegration::QMinimalIntegration() :
+#ifdef Q_OS_WIN
+    m_eventDispatcher(new QEventDispatcherWin32())
+#else
+    m_eventDispatcher(createUnixEventDispatcher())
+#endif
 {
+    QGuiApplicationPrivate::instance()->setEventDispatcher(m_eventDispatcher);
     QMinimalScreen *mPrimaryScreen = new QMinimalScreen();
 
     mPrimaryScreen->mGeometry = QRect(0, 0, 240, 320);
@@ -80,12 +89,9 @@ QPlatformBackingStore *QMinimalIntegration::createPlatformBackingStore(QWindow *
     return new QMinimalBackingStore(window);
 }
 
-QAbstractEventDispatcher *QMinimalIntegration::createEventDispatcher() const
+QAbstractEventDispatcher *QMinimalIntegration::guiThreadEventDispatcher() const
 {
-#ifndef Q_OS_WIN
-    return createUnixEventDispatcher();
-#else
-    return new QEventDispatcherWin32();
-#endif
+    return m_eventDispatcher;
 }
 
+QT_END_NAMESPACE
index d64932c..0835c39 100644 (file)
@@ -73,8 +73,10 @@ public:
 
     QPlatformWindow *createPlatformWindow(QWindow *window) const;
     QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
+    QAbstractEventDispatcher *guiThreadEventDispatcher() const;
 
-    QAbstractEventDispatcher *createEventDispatcher() const;
+private:
+    QAbstractEventDispatcher *m_eventDispatcher;
 };
 
 QT_END_NAMESPACE