summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorPavol Markovic <pavol.markovic@serato.com>2017-05-25 16:53:53 +1200
committerJani Heikkinen <jani.heikkinen@qt.io>2018-01-10 10:03:32 +0000
commit36ddfb6cc1bb4ece153e19d86e0175cbb7052310 (patch)
tree3b17172afd4f15da537b150ee21e4d4c3891ef44 /src/plugins
parent4c03f2b79e18fc20e74515b9ffe5ef829af05742 (diff)
macOS: Replace category methods with functions
Objective-C category methods prohibit safe unloading of dynamic libraries / plugins statically linked to Qt. Although they can be called in convenient way they can be replaced with standalone functions without noticeable drawback. Remove unused qt_validModesForFontPanel category method. Remove empty NSStatusItem (Qt) category. Task-number: QTBUG-59884 Change-Id: I69503a115b1177623da91c67b62d72e56f43ffcf Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaapplication.h12
-rw-r--r--src/plugins/platforms/cocoa/qcocoaapplication.mm30
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm3
4 files changed, 7 insertions, 42 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaapplication.h b/src/plugins/platforms/cocoa/qcocoaapplication.h
index 7bd3c8c76c..66a92686bc 100644
--- a/src/plugins/platforms/cocoa/qcocoaapplication.h
+++ b/src/plugins/platforms/cocoa/qcocoaapplication.h
@@ -83,23 +83,11 @@
// We mean it.
//
-/*
- Cocoa Application Categories
-*/
#include "qglobal.h"
#include "private/qcore_mac_p.h"
#import <AppKit/AppKit.h>
-@class QT_MANGLE_NAMESPACE(QCocoaMenuLoader);
-
-@interface NSApplication (QT_MANGLE_NAMESPACE(QApplicationIntegration))
-- (void)QT_MANGLE_NAMESPACE(qt_setDockMenu):(NSMenu *)newMenu;
-- (int)QT_MANGLE_NAMESPACE(qt_validModesForFontPanel):(NSFontPanel *)fontPanel;
-
-- (void)QT_MANGLE_NAMESPACE(qt_sendPostedMessage):(NSEvent *)event;
-- (BOOL)QT_MANGLE_NAMESPACE(qt_filterEvent):(NSEvent *)event;
-@end
@interface QT_MANGLE_NAMESPACE(QNSApplication) : NSApplication {
}
diff --git a/src/plugins/platforms/cocoa/qcocoaapplication.mm b/src/plugins/platforms/cocoa/qcocoaapplication.mm
index 3b950efa55..d0f27795b6 100644
--- a/src/plugins/platforms/cocoa/qcocoaapplication.mm
+++ b/src/plugins/platforms/cocoa/qcocoaapplication.mm
@@ -82,25 +82,7 @@
QT_USE_NAMESPACE
-@implementation NSApplication (QT_MANGLE_NAMESPACE(QApplicationIntegration))
-
-- (void)QT_MANGLE_NAMESPACE(qt_setDockMenu):(NSMenu *)newMenu
-{
- [[QT_MANGLE_NAMESPACE(QCocoaApplicationDelegate) sharedDelegate] setDockMenu:newMenu];
-}
-
-- (int)QT_MANGLE_NAMESPACE(qt_validModesForFontPanel):(NSFontPanel *)fontPanel
-{
- Q_UNUSED(fontPanel);
- // only display those things that QFont can handle
- return NSFontPanelFaceModeMask
- | NSFontPanelSizeModeMask
- | NSFontPanelCollectionModeMask
- | NSFontPanelUnderlineEffectModeMask
- | NSFontPanelStrikethroughEffectModeMask;
-}
-
-- (void)QT_MANGLE_NAMESPACE(qt_sendPostedMessage):(NSEvent *)event
+static void qt_sendPostedMessage(NSEvent *event)
{
// WARNING: data1 and data2 is truncated to from 64-bit to 32-bit on OS 10.5!
// That is why we need to split the address in two parts:
@@ -128,7 +110,7 @@ QT_USE_NAMESPACE
static const QByteArray q_macLocalEventType = QByteArrayLiteral("mac_generic_NSEvent");
-- (BOOL)QT_MANGLE_NAMESPACE(qt_filterEvent):(NSEvent *)event
+static bool qt_filterEvent(NSEvent *event)
{
if (qApp && qApp->eventDispatcher()->
filterNativeEvent(q_macLocalEventType, static_cast<void*>(event), 0))
@@ -137,7 +119,7 @@ static const QByteArray q_macLocalEventType = QByteArrayLiteral("mac_generic_NSE
if ([event type] == NSApplicationDefined) {
switch (static_cast<short>([event subtype])) {
case QtCocoaEventSubTypePostMessage:
- [NSApp QT_MANGLE_NAMESPACE(qt_sendPostedMessage):event];
+ qt_sendPostedMessage(event);
return true;
default:
break;
@@ -147,8 +129,6 @@ static const QByteArray q_macLocalEventType = QByteArrayLiteral("mac_generic_NSE
return false;
}
-@end
-
static void qt_maybeSendKeyEquivalentUpEvent(NSEvent *event)
{
// Cocoa is known for not sending key up events for key
@@ -180,7 +160,7 @@ static void qt_maybeSendKeyEquivalentUpEvent(NSEvent *event)
// be called instead of sendEvent if redirection occurs.
// 'self' will then be an instance of NSApplication
// (and not QNSApplication)
- if (![NSApp QT_MANGLE_NAMESPACE(qt_filterEvent):event]) {
+ if (!qt_filterEvent(event)) {
[self QT_MANGLE_NAMESPACE(qt_sendEvent_original):event];
qt_maybeSendKeyEquivalentUpEvent(event);
}
@@ -190,7 +170,7 @@ static void qt_maybeSendKeyEquivalentUpEvent(NSEvent *event)
{
// This method will be called if
// no redirection occurs
- if (![NSApp QT_MANGLE_NAMESPACE(qt_filterEvent):event]) {
+ if (!qt_filterEvent(event)) {
[super sendEvent:event];
qt_maybeSendKeyEquivalentUpEvent(event);
}
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
index 26ab07ffaf..5504c2427f 100644
--- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
+++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
@@ -42,7 +42,7 @@
#include "qcocoamenu.h"
#include "qcocoamenubar.h"
#include "qcocoahelpers.h"
-#include "qcocoaapplication.h"
+#include "qcocoaapplicationdelegate.h"
#include "qcocoaintegration.h"
#include "qcocoaeventdispatcher.h"
@@ -256,7 +256,7 @@ void QCocoaNativeInterface::setDockMenu(QPlatformMenu *platformMenu)
QMacAutoReleasePool pool;
QCocoaMenu *cocoaPlatformMenu = static_cast<QCocoaMenu *>(platformMenu);
NSMenu *menu = cocoaPlatformMenu->nsMenu();
- [NSApp QT_MANGLE_NAMESPACE(qt_setDockMenu): menu];
+ [[QCocoaApplicationDelegate sharedDelegate] setDockMenu:menu];
}
void *QCocoaNativeInterface::qMenuToNSMenu(QPlatformMenu *platformMenu)
diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
index 13e9d8809e..e756f0aeb0 100644
--- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
+++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
@@ -289,9 +289,6 @@ void QCocoaSystemTrayIcon::showMessage(const QString &title, const QString &mess
}
QT_END_NAMESPACE
-@implementation NSStatusItem (Qt)
-@end
-
@implementation QNSImageView
-(id)initWithParent:(QNSStatusItem*)myParent {
self = [super init];