summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaintegration.mm
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-01-20 09:11:35 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-04 22:59:04 +0100
commitd01f0213b837d71dd77e29752ebcbf161f227a11 (patch)
tree82595e1bf63a1b6b991c5b94a4f3549fad009808 /src/plugins/platforms/cocoa/qcocoaintegration.mm
parentb0e6bc42ebec357816d53456d3ef214f9fb8754c (diff)
Cocoa: Establish pattern for accessing globals
Use a static QCocoaIntegration pointer instead of QGuiApplication. This removes the need to call out of the platform plugin as well as the casting from "platform" to "cocoa" types. Change-Id: If432b3567811223b73a67548e475e07d63635b73 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaintegration.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 5f01274d98..e8cf5ca69b 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -58,7 +58,6 @@
#include <qpa/qplatformaccessibility.h>
#include <QtCore/qcoreapplication.h>
-#include <QtPlatformSupport/private/qcoretextfontdatabase_p.h>
#include <IOKit/graphics/IOGraphicsLib.h>
static void initResources()
@@ -214,6 +213,8 @@ QPixmap QCocoaScreen::grabWindow(WId window, int x, int y, int width, int height
return windowPixmap;
}
+QCocoaIntegration *QCocoaIntegration::mInstance = 0;
+
QCocoaIntegration::QCocoaIntegration()
: mFontDb(new QCoreTextFontDatabase())
, mInputContext(new QCocoaInputContext)
@@ -226,6 +227,10 @@ QCocoaIntegration::QCocoaIntegration()
, mServices(new QCocoaServices)
, mKeyboardMapper(new QCocoaKeyMapper)
{
+ if (mInstance != 0)
+ qWarning("Creating multiple Cocoa platform integrations is not supported");
+ mInstance = this;
+
initResources();
QCocoaAutoReleasePool pool;
@@ -273,6 +278,8 @@ QCocoaIntegration::QCocoaIntegration()
QCocoaIntegration::~QCocoaIntegration()
{
+ mInstance = 0;
+
qt_resetNSApplicationSendEvent();
QCocoaAutoReleasePool pool;
@@ -296,6 +303,11 @@ QCocoaIntegration::~QCocoaIntegration()
}
}
+QCocoaIntegration *QCocoaIntegration::instance()
+{
+ return mInstance;
+}
+
/*!
\brief Synchronizes the screen list, adds new screens, removes deleted ones
*/
@@ -388,22 +400,22 @@ QAbstractEventDispatcher *QCocoaIntegration::createEventDispatcher() const
return new QCocoaEventDispatcher;
}
-QPlatformFontDatabase *QCocoaIntegration::fontDatabase() const
+QCoreTextFontDatabase *QCocoaIntegration::fontDatabase() const
{
return mFontDb.data();
}
-QPlatformNativeInterface *QCocoaIntegration::nativeInterface() const
+QCocoaNativeInterface *QCocoaIntegration::nativeInterface() const
{
return mNativeInterface.data();
}
-QPlatformInputContext *QCocoaIntegration::inputContext() const
+QCocoaInputContext *QCocoaIntegration::inputContext() const
{
return mInputContext.data();
}
-QPlatformAccessibility *QCocoaIntegration::accessibility() const
+QCocoaAccessibility *QCocoaIntegration::accessibility() const
{
#ifndef QT_NO_ACCESSIBILITY
return mAccessibility.data();
@@ -412,12 +424,12 @@ QPlatformAccessibility *QCocoaIntegration::accessibility() const
#endif
}
-QPlatformClipboard *QCocoaIntegration::clipboard() const
+QCocoaClipboard *QCocoaIntegration::clipboard() const
{
return mCocoaClipboard;
}
-QPlatformDrag *QCocoaIntegration::drag() const
+QCocoaDrag *QCocoaIntegration::drag() const
{
return mCocoaDrag.data();
}
@@ -434,7 +446,7 @@ QPlatformTheme *QCocoaIntegration::createPlatformTheme(const QString &name) cons
return QPlatformIntegration::createPlatformTheme(name);
}
-QPlatformServices *QCocoaIntegration::services() const
+QCocoaServices *QCocoaIntegration::services() const
{
return mServices.data();
}