diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.h b/src/plugins/platforms/cocoa/qcocoaintegration.h index dd0c4aedfe9..46e8925ba74 100644 --- a/src/plugins/platforms/cocoa/qcocoaintegration.h +++ b/src/plugins/platforms/cocoa/qcocoaintegration.h @@ -47,6 +47,7 @@ #include "qcocoaautoreleasepool.h" #include "qcocoacursor.h" +#include #include QT_BEGIN_NAMESPACE @@ -90,11 +91,12 @@ public: QPlatformTheme *platformTheme() const; private: - QPlatformFontDatabase *mFontDb; + + QScopedPointer mFontDb; QAbstractEventDispatcher *mEventDispatcher; - QPlatformAccessibility *mAccessibility; - QPlatformTheme *mPlatformTheme; + QScopedPointer mAccessibility; + QScopedPointer mPlatformTheme; }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm index 7d91be776a0..685b640843b 100644 --- a/src/plugins/platforms/cocoa/qcocoaintegration.mm +++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm @@ -89,6 +89,9 @@ QCocoaScreen::~QCocoaScreen() QCocoaIntegration::QCocoaIntegration() : mFontDb(new QCoreTextFontDatabase()) , mEventDispatcher(new QCocoaEventDispatcher()) + , mAccessibility(new QPlatformAccessibility) + , mPlatformTheme(new QCocoaTheme) + { QCocoaAutoReleasePool pool; @@ -134,13 +137,11 @@ QCocoaIntegration::QCocoaIntegration() screenAdded(screen); } - mAccessibility = new QPlatformAccessibility; - mPlatformTheme = new QCocoaTheme; } QCocoaIntegration::~QCocoaIntegration() { - delete mAccessibility; + [[NSApplication sharedApplication] setDelegate: 0]; } bool QCocoaIntegration::hasCapability(QPlatformIntegration::Capability cap) const @@ -177,7 +178,7 @@ QAbstractEventDispatcher *QCocoaIntegration::guiThreadEventDispatcher() const QPlatformFontDatabase *QCocoaIntegration::fontDatabase() const { - return mFontDb; + return mFontDb.data(); } QPlatformNativeInterface *QCocoaIntegration::nativeInterface() const @@ -187,12 +188,12 @@ QPlatformNativeInterface *QCocoaIntegration::nativeInterface() const QPlatformAccessibility *QCocoaIntegration::accessibility() const { - return mAccessibility; + return mAccessibility.data(); } QPlatformTheme *QCocoaIntegration::platformTheme() const { - return mPlatformTheme; + return mPlatformTheme.data(); } QT_END_NAMESPACE