summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2014-06-16 11:58:29 (GMT)
committerJake Petroules <jake.petroules@petroules.com>2014-09-01 15:49:07 (GMT)
commit997d626173d9aba5b01b35e4d95ad162771ba789 (patch)
tree774c1b814c9f933d32a58a2c42183a438eca7d15 /src/gui
parent93c137ea29f011a267e22fa644a40aba6e3e2d22 (diff)
downloadQt-997d626173d9aba5b01b35e4d95ad162771ba789.zip
Qt-997d626173d9aba5b01b35e4d95ad162771ba789.tar.gz
Qt-997d626173d9aba5b01b35e4d95ad162771ba789.tar.bz2
Replace all ocurrences of NSApp with [NSApplication sharedApplication].
The former returns an id and the latter returns an NSApplication*. This gives us the benefits of static typing and resolves a build error on OS X 10.10. Task-number: QTBUG-39644 Change-Id: I62939b168f391beb846f8a1c5ae789e45bceb858 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/dialogs/qcolordialog_mac.mm10
-rw-r--r--src/gui/dialogs/qfiledialog_mac.mm6
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm10
-rw-r--r--src/gui/kernel/qapplication_mac.mm14
-rw-r--r--src/gui/kernel/qcocoaapplication_mac.mm10
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac.mm12
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac.mm18
-rw-r--r--src/gui/kernel/qcocoasharedwindowmethods_mac_p.h6
-rw-r--r--src/gui/kernel/qeventdispatcher_mac.mm55
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm4
-rw-r--r--src/gui/kernel/qwidget_mac.mm12
-rw-r--r--src/gui/styles/qmacstyle_mac.mm2
-rw-r--r--src/gui/util/qsystemtrayicon_mac.mm2
-rw-r--r--src/gui/widgets/qcocoamenu_mac.mm2
-rw-r--r--src/gui/widgets/qmenu_mac.mm10
16 files changed, 89 insertions, 88 deletions
diff --git a/src/gui/dialogs/qcolordialog_mac.mm b/src/gui/dialogs/qcolordialog_mac.mm
index f65422f..df53f6f 100644
--- a/src/gui/dialogs/qcolordialog_mac.mm
+++ b/src/gui/dialogs/qcolordialog_mac.mm
@@ -318,7 +318,7 @@ QT_USE_NAMESPACE
// It's important that the modal event loop is stopped before
// we accept/reject QColorDialog, since QColorDialog has its
// own event loop that needs to be stopped last.
- [NSApp stopModalWithCode:code];
+ [[NSApplication sharedApplication] stopModalWithCode:code];
} else {
// Since we are not in a modal event loop, we can safely close
// down QColorDialog
@@ -350,7 +350,7 @@ QT_USE_NAMESPACE
while (!modalEnded) {
#ifndef QT_NO_EXCEPTIONS
@try {
- [NSApp runModalForWindow:mColorPanel];
+ [[NSApplication sharedApplication] runModalForWindow:mColorPanel];
modalEnded = true;
} @catch (NSException *) {
// For some reason, NSColorPanel throws an exception when
@@ -358,7 +358,7 @@ QT_USE_NAMESPACE
// palette (tab three).
}
#else
- [NSApp runModalForWindow:mColorPanel];
+ [[NSApplication sharedApplication] runModalForWindow:mColorPanel];
modalEnded = true;
#endif
}
@@ -469,10 +469,10 @@ void QColorDialogPrivate::mac_nativeDialogModalHelp()
// Do a queued meta-call to open the native modal dialog so it opens after the new
// event loop has started to execute (in QDialog::exec). Using a timer rather than
// a queued meta call is intentional to ensure that the call is only delivered when
- // [NSApp run] runs (timers are handeled special in cocoa). If NSApp is not
+ // [NSApplication run] runs (timers are handeled special in cocoa). If NSApplication is not
// running (which is the case if e.g a top-most QEventLoop has been
// interrupted, and the second-most event loop has not yet been reactivated (regardless
- // if [NSApp run] is still on the stack)), showing a native modal dialog will fail.
+ // if [NSApplication run] is still on the stack)), showing a native modal dialog will fail.
if (delegate){
Q_Q(QColorDialog);
QTimer::singleShot(1, q, SLOT(_q_macRunNativeAppModalPanel()));
diff --git a/src/gui/dialogs/qfiledialog_mac.mm b/src/gui/dialogs/qfiledialog_mac.mm
index cb9dc77..da15a61 100644
--- a/src/gui/dialogs/qfiledialog_mac.mm
+++ b/src/gui/dialogs/qfiledialog_mac.mm
@@ -229,7 +229,7 @@ QT_USE_NAMESPACE
if ([mSavePanel respondsToSelector:@selector(close)])
[mSavePanel close];
if ([mSavePanel isSheet])
- [NSApp endSheet: mSavePanel];
+ [[NSApplication sharedApplication] endSheet: mSavePanel];
}
- (void)showModelessPanel
@@ -1162,10 +1162,10 @@ void QFileDialogPrivate::mac_nativeDialogModalHelp()
// Do a queued meta-call to open the native modal dialog so it opens after the new
// event loop has started to execute (in QDialog::exec). Using a timer rather than
// a queued meta call is intentional to ensure that the call is only delivered when
- // [NSApp run] runs (timers are handeled special in cocoa). If NSApp is not
+ // [NSApplication run] runs (timers are handeled special in cocoa). If NSApplication is not
// running (which is the case if e.g a top-most QEventLoop has been
// interrupted, and the second-most event loop has not yet been reactivated (regardless
- // if [NSApp run] is still on the stack)), showing a native modal dialog will fail.
+ // if [NSApplication run] is still on the stack)), showing a native modal dialog will fail.
if (nativeDialogInUse){
Q_Q(QFileDialog);
QTimer::singleShot(1, q, SLOT(_q_macRunNativeAppModalPanel()));
diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm
index f5484f0..75c37d2 100644
--- a/src/gui/dialogs/qfontdialog_mac.mm
+++ b/src/gui/dialogs/qfontdialog_mac.mm
@@ -230,7 +230,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
mAppModal = true;
NSWindow *ourPanel = [mStolenContentView window];
[ourPanel setReleasedWhenClosed:NO];
- [NSApp runModalForWindow:ourPanel];
+ [[NSApplication sharedApplication] runModalForWindow:ourPanel];
QAbstractEventDispatcher::instance()->interrupt();
if (mReturnCode == NSOKButton)
@@ -256,7 +256,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
mAppModal = false;
NSWindow *ourPanel = [mStolenContentView window];
- [NSApp beginSheet:ourPanel
+ [[NSApplication sharedApplication] beginSheet:ourPanel
modalForWindow:window
modalDelegate:0
didEndSelector:0
@@ -456,7 +456,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
if (mAppModal) {
mReturnCode = code;
- [NSApp stopModalWithCode:code];
+ [[NSApplication sharedApplication] stopModalWithCode:code];
} else {
if (code == NSOKButton)
mPriv->fontDialog()->accept();
@@ -636,10 +636,10 @@ void QFontDialogPrivate::mac_nativeDialogModalHelp()
// Do a queued meta-call to open the native modal dialog so it opens after the new
// event loop has started to execute (in QDialog::exec). Using a timer rather than
// a queued meta call is intentional to ensure that the call is only delivered when
- // [NSApp run] runs (timers are handeled special in cocoa). If NSApp is not
+ // [NSApplication run] runs (timers are handeled special in cocoa). If NSApplication is not
// running (which is the case if e.g a top-most QEventLoop has been
// interrupted, and the second-most event loop has not yet been reactivated (regardless
- // if [NSApp run] is still on the stack)), showing a native modal dialog will fail.
+ // if [NSApplication run] is still on the stack)), showing a native modal dialog will fail.
if (nativeDialogInUse) {
Q_Q(QFontDialog);
QTimer::singleShot(1, q, SLOT(_q_macRunNativeAppModalPanel()));
diff --git a/src/gui/kernel/qapplication_mac.mm b/src/gui/kernel/qapplication_mac.mm
index 445189d..e4516da 100644
--- a/src/gui/kernel/qapplication_mac.mm
+++ b/src/gui/kernel/qapplication_mac.mm
@@ -468,7 +468,7 @@ void qt_mac_set_app_icon(const QPixmap &pixmap)
image = static_cast<NSImage *>(qt_mac_create_nsimage(pixmap));
}
- [NSApp setApplicationIconImage:image];
+ [[NSApplication sharedApplication] setApplicationIconImage:image];
[image release];
#endif
}
@@ -750,7 +750,7 @@ void qt_event_request_showsheet(QWidget *w)
Q_ASSERT(qt_mac_is_macsheet(w));
#ifdef QT_MAC_USE_COCOA
w->repaint();
- [NSApp beginSheet:qt_mac_window_for(w) modalForWindow:qt_mac_window_for(w->parentWidget())
+ [[NSApplication sharedApplication] beginSheet:qt_mac_window_for(w) modalForWindow:qt_mac_window_for(w->parentWidget())
modalDelegate:nil didEndSelector:nil contextInfo:0];
#else
qt_mac_event_remove(request_showsheet_pending);
@@ -992,7 +992,7 @@ Q_GUI_EXPORT void qt_mac_set_dock_menu(QMenu *menu)
{
qt_mac_dock_menu = menu;
#ifdef QT_MAC_USE_COCOA
- [NSApp setDockMenu:menu->macMenu()];
+ [[NSApplication sharedApplication] setDockMenu:menu->macMenu()];
#else
SetApplicationDockTileMenu(menu->macMenu());
#endif
@@ -1011,7 +1011,7 @@ void qt_mac_event_release(QWidget *w)
#ifndef QT_MAC_USE_COCOA
SetApplicationDockTileMenu(0);
#else
- [NSApp setDockMenu:0];
+ [[NSApplication sharedApplication] setDockMenu:0];
#endif
}
}
@@ -1463,7 +1463,7 @@ QWidget *QApplication::topLevelAt(const QPoint &p)
NSWindowList(windowCount, windowList.data());
int firstQtWindowFound = -1;
for (int i = 0; i < windowCount; ++i) {
- NSWindow *window = [NSApp windowWithWindowNumber:windowList[i]];
+ NSWindow *window = [[NSApplication sharedApplication] windowWithWindowNumber:windowList[i]];
if (window) {
QWidget *candidateWindow = [window QT_MANGLE_NAMESPACE(qt_qwidget)];
if (candidateWindow && firstQtWindowFound == -1)
@@ -3071,7 +3071,7 @@ bool QApplicationPrivate::canQuit()
#else
Q_Q(QApplication);
#ifdef QT_MAC_USE_COCOA
- [[NSApp mainMenu] cancelTracking];
+ [[[NSApplication sharedApplication] mainMenu] cancelTracking];
#else
HiliteMenu(0);
#endif
@@ -3146,7 +3146,7 @@ void onApplicationChangedActivation( bool activated )
}
if (!app->activeWindow()) {
- OSWindowRef wp = [NSApp keyWindow];
+ OSWindowRef wp = [[NSApplication sharedApplication] keyWindow];
if (QWidget *tmp_w = qt_mac_find_window(wp))
app->setActiveWindow(tmp_w);
}
diff --git a/src/gui/kernel/qcocoaapplication_mac.mm b/src/gui/kernel/qcocoaapplication_mac.mm
index 473eec1..6af7b79 100644
--- a/src/gui/kernel/qcocoaapplication_mac.mm
+++ b/src/gui/kernel/qcocoaapplication_mac.mm
@@ -147,7 +147,7 @@ QT_USE_NAMESPACE
if ([event type] == NSApplicationDefined) {
switch ([event subtype]) {
case QtCocoaEventSubTypePostMessage:
- [NSApp QT_MANGLE_NAMESPACE(qt_sendPostedMessage):event];
+ [[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_sendPostedMessage):event];
return true;
default:
break;
@@ -174,7 +174,7 @@ QT_USE_NAMESPACE
// 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 (![[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_filterEvent):event])
[self QT_MANGLE_NAMESPACE(qt_sendEvent_original):event];
}
@@ -182,7 +182,7 @@ QT_USE_NAMESPACE
{
// This method will be called if
// no redirection occurs
- if (![NSApp QT_MANGLE_NAMESPACE(qt_filterEvent):event])
+ if (![[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_filterEvent):event])
[super sendEvent:event];
}
@@ -194,7 +194,7 @@ QT_USE_NAMESPACE
// visible on screen. Note: If Qt is used as a plugin, Qt will not use a
// native menu bar. Hence, we will also not need to do any redirection etc. as
// we do with sendEvent.
- [[NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)] qtDispatcherToQAction:sender];
+ [[[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)] qtDispatcherToQAction:sender];
}
@end
@@ -203,7 +203,7 @@ QT_BEGIN_NAMESPACE
void qt_redirectNSApplicationSendEvent()
{
- if ([NSApp isMemberOfClass:[QT_MANGLE_NAMESPACE(QNSApplication) class]]) {
+ if ([[NSApplication sharedApplication] isMemberOfClass:[QT_MANGLE_NAMESPACE(QNSApplication) class]]) {
// No need to change implementation since Qt
// already controls a subclass of NSApplication
return;
diff --git a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
index d45f5f1..cf46a87 100644
--- a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
+++ b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
@@ -122,7 +122,7 @@ static void cleanupCocoaApplicationDelegate()
[dockMenu release];
[qtMenuLoader release];
if (reflectionDelegate) {
- [NSApp setDelegate:reflectionDelegate];
+ [[NSApplication sharedApplication] setDelegate:reflectionDelegate];
[reflectionDelegate release];
}
[super dealloc];
@@ -183,7 +183,7 @@ static void cleanupCocoaApplicationDelegate()
return [[qtMenuLoader retain] autorelease];
}
-// This function will only be called when NSApp is actually running. Before
+// This function will only be called when NSApplication is actually running. Before
// that, the kAEQuitApplication Apple event will be sent to
// QApplicationPrivate::globalAppleEventProcessor in qapplication_mac.mm
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
@@ -249,7 +249,7 @@ static void cleanupCocoaApplicationDelegate()
&& [reflectionDelegate respondsToSelector:
@selector(applicationShouldTerminateAfterLastWindowClosed:)])
return [reflectionDelegate applicationShouldTerminateAfterLastWindowClosed:sender];
- return NO; // Someday qApp->quitOnLastWindowClosed(); when QApp and NSApp work closer together.
+ return NO; // Someday qApp->quitOnLastWindowClosed(); when qApp and NSApplication work closer together.
}
@@ -308,7 +308,7 @@ static void cleanupCocoaApplicationDelegate()
QDesktopWidgetImplementation::instance()->onResize();
}
-- (void)setReflectionDelegate:(NSObject <NSApplicationDelegate> *)oldDelegate
+- (void)setReflectionDelegate:(id <NSApplicationDelegate>)oldDelegate
{
[oldDelegate retain];
[reflectionDelegate release];
@@ -355,12 +355,12 @@ static void cleanupCocoaApplicationDelegate()
{
Q_UNUSED(event);
Q_UNUSED(replyEvent);
- [NSApp terminate:self];
+ [[NSApplication sharedApplication] terminate:self];
}
- (void)qtDispatcherToQAction:(id)sender
{
- [[NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)] qtDispatcherToQAction:sender];
+ [[[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)] qtDispatcherToQAction:sender];
}
@end
diff --git a/src/gui/kernel/qcocoaapplicationdelegate_mac_p.h b/src/gui/kernel/qcocoaapplicationdelegate_mac_p.h
index 7ff08d2..5a43d36 100644
--- a/src/gui/kernel/qcocoaapplicationdelegate_mac_p.h
+++ b/src/gui/kernel/qcocoaapplicationdelegate_mac_p.h
@@ -113,7 +113,7 @@ QT_FORWARD_DECLARE_CLASS(QApplicationPrivate);
QApplicationPrivate *qtPrivate;
NSMenu *dockMenu;
QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *qtMenuLoader;
- NSObject <NSApplicationDelegate> *reflectionDelegate;
+ id <NSApplicationDelegate> reflectionDelegate;
bool inLaunch;
}
+ (QT_MANGLE_NAMESPACE(QCocoaApplicationDelegate)*)sharedDelegate;
@@ -122,7 +122,7 @@ QT_FORWARD_DECLARE_CLASS(QApplicationPrivate);
- (QApplicationPrivate *)qAppPrivate;
- (void)setMenuLoader:(QT_MANGLE_NAMESPACE(QCocoaMenuLoader)*)menuLoader;
- (QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *)menuLoader;
-- (void)setReflectionDelegate:(NSObject <NSApplicationDelegate> *)oldDelegate;
+- (void)setReflectionDelegate:(id <NSApplicationDelegate>)oldDelegate;
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
@end
#endif
diff --git a/src/gui/kernel/qcocoamenuloader_mac.mm b/src/gui/kernel/qcocoamenuloader_mac.mm
index 03fed56..c712950 100644
--- a/src/gui/kernel/qcocoamenuloader_mac.mm
+++ b/src/gui/kernel/qcocoamenuloader_mac.mm
@@ -92,8 +92,8 @@ QT_USE_NAMESPACE
// 'Quit' item. When changing menu bar (e.g when switching between
// windows with different menu bars), we never recreate this menu, but
// instead pull it out the current menu bar and place into the new one:
- NSMenu *mainMenu = [NSApp mainMenu];
- if ([NSApp mainMenu] == menu)
+ NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];
+ if ([[NSApplication sharedApplication] mainMenu] == menu)
return; // nothing to do (menu is the current menu bar)!
#ifndef QT_NAMESPACE
@@ -201,27 +201,27 @@ QT_USE_NAMESPACE
- (void)terminate:(id)sender
{
- [NSApp terminate:sender];
+ [[NSApplication sharedApplication] terminate:sender];
}
- (void)orderFrontStandardAboutPanel:(id)sender
{
- [NSApp orderFrontStandardAboutPanel:sender];
+ [[NSApplication sharedApplication] orderFrontStandardAboutPanel:sender];
}
- (void)hideOtherApplications:(id)sender
{
- [NSApp hideOtherApplications:sender];
+ [[NSApplication sharedApplication] hideOtherApplications:sender];
}
- (void)unhideAllApplications:(id)sender
{
- [NSApp unhideAllApplications:sender];
+ [[NSApplication sharedApplication] unhideAllApplications:sender];
}
- (void)hide:(id)sender
{
- [NSApp hide:sender];
+ [[NSApplication sharedApplication] hide:sender];
}
- (void)qtUpdateMenubar
@@ -258,7 +258,7 @@ QT_USE_NAMESPACE
- (void)orderFrontCharacterPalette:(id)sender
{
- [NSApp orderFrontCharacterPalette:sender];
+ [[NSApplication sharedApplication] orderFrontCharacterPalette:sender];
}
- (BOOL)validateMenuItem:(NSMenuItem*)menuItem
@@ -266,7 +266,7 @@ QT_USE_NAMESPACE
if ([menuItem action] == @selector(hide:)
|| [menuItem action] == @selector(hideOtherApplications:)
|| [menuItem action] == @selector(unhideAllApplications:)) {
- return [NSApp validateMenuItem:menuItem];
+ return [[NSApplication sharedApplication] validateMenuItem:menuItem];
} else {
return [menuItem isEnabled];
}
diff --git a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
index 02cd007..cec899b 100644
--- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
+++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
@@ -143,7 +143,7 @@ QT_END_NAMESPACE
{
// This function is called from the quit item in the menubar when this window
// is in the first responder chain (see also qtDispatcherToQAction above)
- [NSApp terminate:sender];
+ [[NSApplication sharedApplication] terminate:sender];
}
- (void)setLevel:(NSInteger)windowLevel
@@ -364,7 +364,7 @@ QT_END_NAMESPACE
if ([sender draggingSource] != nil) {
// modifier flags might have changed, update it here since we don't send any input events.
- QApplicationPrivate::modifier_buttons = qt_cocoaModifiers2QtModifiers([[NSApp currentEvent] modifierFlags]);
+ QApplicationPrivate::modifier_buttons = qt_cocoaModifiers2QtModifiers([[[NSApplication sharedApplication] currentEvent] modifierFlags]);
modifiers = QApplication::keyboardModifiers();
} else {
// when the source is from another application the above technique will not work.
@@ -456,7 +456,7 @@ QT_END_NAMESPACE
// Update modifiers:
if ([sender draggingSource] != nil) {
- QApplicationPrivate::modifier_buttons = qt_cocoaModifiers2QtModifiers([[NSApp currentEvent] modifierFlags]);
+ QApplicationPrivate::modifier_buttons = qt_cocoaModifiers2QtModifiers([[[NSApplication sharedApplication] currentEvent] modifierFlags]);
modifiers = QApplication::keyboardModifiers();
} else {
modifiers = qt_cocoaDragOperation2QtModifiers(nsActions);
diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm
index a35fb68..e830eba 100644
--- a/src/gui/kernel/qeventdispatcher_mac.mm
+++ b/src/gui/kernel/qeventdispatcher_mac.mm
@@ -461,7 +461,7 @@ static bool qt_mac_send_event(QEventLoop::ProcessEventsFlags, OSEventRef event,
if (pt)
[pt sendEvent:event];
else
- [NSApp sendEvent:event];
+ [[NSApplication sharedApplication] sendEvent:event];
return true;
#endif
}
@@ -521,12 +521,12 @@ static inline void qt_mac_waitForMoreEvents()
// (and free up cpu time) until at least one event occur.
// This implementation is a bit on the edge, but seems to
// work fine:
- NSEvent* event = [NSApp nextEventMatchingMask:NSAnyEventMask
+ NSEvent* event = [[NSApplication sharedApplication] nextEventMatchingMask:NSAnyEventMask
untilDate:[NSDate distantFuture]
inMode:NSDefaultRunLoopMode
dequeue:YES];
if (event)
- [NSApp postEvent:event atStart:YES];
+ [[NSApplication sharedApplication] postEvent:event atStart:YES];
#endif
}
@@ -537,12 +537,12 @@ static inline void qt_mac_waitForMoreModalSessionEvents()
// (and free up cpu time) until at least one event occur.
// This implementation is a bit on the edge, but seems to
// work fine:
- NSEvent* event = [NSApp nextEventMatchingMask:NSAnyEventMask
+ NSEvent* event = [[NSApplication sharedApplication] nextEventMatchingMask:NSAnyEventMask
untilDate:[NSDate distantFuture]
inMode:NSModalPanelRunLoopMode
dequeue:YES];
if (event)
- [NSApp postEvent:event atStart:YES];
+ [[NSApplication sharedApplication] postEvent:event atStart:YES];
}
#endif
@@ -588,23 +588,23 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags)
// done from the application itself. And if processEvents is called
// manually (rather than from a QEventLoop), we cannot enter a tight
// loop and block this call, but instead we need to return after one flush.
- // Finally, if we are to exclude user input events, we cannot call [NSApp run]
+ // Finally, if we are to exclude user input events, we cannot call [NSApplication run]
// as we then loose control over which events gets dispatched:
- const bool canExec_3rdParty = d->nsAppRunCalledByQt || ![NSApp isRunning];
+ const bool canExec_3rdParty = d->nsAppRunCalledByQt || ![[NSApplication sharedApplication] isRunning];
const bool canExec_Qt = !excludeUserEvents &&
(flags & QEventLoop::DialogExec || flags & QEventLoop::EventLoopExec) ;
if (canExec_Qt && canExec_3rdParty) {
// We can use exec-mode, meaning that we can stay in a tight loop until
// interrupted. This is mostly an optimization, but it allow us to use
- // [NSApp run], which is the normal code path for cocoa applications.
+ // [NSApplication run], which is the normal code path for cocoa applications.
if (NSModalSession session = d->currentModalSession()) {
QBoolBlocker execGuard(d->currentExecIsNSAppRun, false);
- while ([NSApp runModalSession:session] == NSRunContinuesResponse && !d->interrupt)
+ while ([[NSApplication sharedApplication] runModalSession:session] == NSRunContinuesResponse && !d->interrupt)
qt_mac_waitForMoreModalSessionEvents();
if (!d->interrupt && session == d->currentModalSessionCached) {
- // Someone called [NSApp stopModal:] from outside the event
+ // Someone called [[NSApplication sharedApplication] stopModal:] from outside the event
// dispatcher (e.g to stop a native dialog). But that call wrongly stopped
// 'session' as well. As a result, we need to restart all internal sessions:
d->temporarilyStopAllModalSessions();
@@ -612,7 +612,7 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags)
} else {
d->nsAppRunCalledByQt = true;
QBoolBlocker execGuard(d->currentExecIsNSAppRun, true);
- [NSApp run];
+ [[NSApplication sharedApplication] run];
}
retVal = true;
} else {
@@ -626,9 +626,9 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags)
// to use cocoa's native way of running modal sessions:
if (flags & QEventLoop::WaitForMoreEvents)
qt_mac_waitForMoreModalSessionEvents();
- NSInteger status = [NSApp runModalSession:session];
+ NSInteger status = [[NSApplication sharedApplication] runModalSession:session];
if (status != NSRunContinuesResponse && session == d->currentModalSessionCached) {
- // INVARIANT: Someone called [NSApp stopModal:] from outside the event
+ // INVARIANT: Someone called [NSApplication stopModal:] from outside the event
// dispatcher (e.g to stop a native dialog). But that call wrongly stopped
// 'session' as well. As a result, we need to restart all internal sessions:
d->temporarilyStopAllModalSessions();
@@ -637,8 +637,8 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags)
} else do {
// Dispatch all non-user events (but que non-user events up for later). In
// this case, we need more control over which events gets dispatched, and
- // cannot use [NSApp runModalSession:session]:
- event = [NSApp nextEventMatchingMask:NSAnyEventMask
+ // cannot use [NSApplication runModalSession:session]:
+ event = [[NSApplication sharedApplication] nextEventMatchingMask:NSAnyEventMask
untilDate:nil
inMode:NSModalPanelRunLoopMode
dequeue: YES];
@@ -655,7 +655,7 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags)
} while (!d->interrupt && event != nil);
} else do {
// INVARIANT: No modal window is executing.
- event = [NSApp nextEventMatchingMask:NSAnyEventMask
+ event = [[NSApplication sharedApplication] nextEventMatchingMask:NSAnyEventMask
untilDate:nil
inMode:NSDefaultRunLoopMode
dequeue: YES];
@@ -798,12 +798,12 @@ void QEventDispatcherMacPrivate::ensureNSAppInitialized()
// we let Cocoa finish the initialization it seems to need. We'll only
// apply this trick at most once for any application, and we avoid doing it
// for the common case where main just starts QApplication::exec.
- if (nsAppRunCalledByQt || [NSApp isRunning])
+ if (nsAppRunCalledByQt || [[NSApplication sharedApplication] isRunning])
return;
nsAppRunCalledByQt = true;
QBoolBlocker block1(interrupt, true);
QBoolBlocker block2(currentExecIsNSAppRun, true);
- [NSApp run];
+ [[NSApplication sharedApplication] run];
}
void QEventDispatcherMacPrivate::temporarilyStopAllModalSessions()
@@ -812,8 +812,8 @@ void QEventDispatcherMacPrivate::temporarilyStopAllModalSessions()
// such, make them pending again. The next call to
// currentModalSession will recreate them again. The
// reason to stop all session like this is that otherwise
- // a call [NSApp stop] would not stop NSApp, but rather
- // the current modal session. So if we need to stop NSApp
+ // a call [NSApplication stop] would not stop NSApplication, but rather
+ // the current modal session. So if we need to stop NSApplication
// we need to stop all the modal session first. To avoid changing
// the stacking order of the windows while doing so, we put
// up a block that is used in QCocoaWindow and QCocoaPanel:
@@ -821,7 +821,7 @@ void QEventDispatcherMacPrivate::temporarilyStopAllModalSessions()
for (int i=0; i<stackSize; ++i) {
QCocoaModalSessionInfo &info = cocoaModalSessionStack[i];
if (info.session) {
- [NSApp endModalSession:info.session];
+ [[NSApplication sharedApplication] endModalSession:info.session];
info.session = 0;
}
}
@@ -856,7 +856,7 @@ NSModalSession QEventDispatcherMacPrivate::currentModalSession()
info.nswindow = window;
[(NSWindow*) info.nswindow retain];
int levelBeforeEnterModal = [window level];
- info.session = [NSApp beginModalSessionForWindow:window];
+ info.session = [[NSApplication sharedApplication] beginModalSessionForWindow:window];
// Make sure we don't stack the window lower that it was before
// entering modal, in case it e.g. had the stays-on-top flag set:
if (levelBeforeEnterModal > [window level])
@@ -926,7 +926,7 @@ void QEventDispatcherMacPrivate::cleanupModalSessions()
cocoaModalSessionStack.remove(i);
currentModalSessionCached = 0;
if (info.session) {
- [NSApp endModalSession:info.session];
+ [[NSApplication sharedApplication] endModalSession:info.session];
[(NSWindow *)info.nswindow release];
}
}
@@ -1057,7 +1057,7 @@ inline static void processPostedEvents(QEventDispatcherMacPrivate *const d, cons
// pending cocoa events first).
if (d->currentModalSessionCached)
d->temporarilyStopAllModalSessions();
- [NSApp stop:NSApp];
+ [[NSApplication sharedApplication] stop:[NSApplication sharedApplication]];
d->cancelWaitForMoreEvents();
}
#endif
@@ -1093,7 +1093,8 @@ void QEventDispatcherMacPrivate::cancelWaitForMoreEvents()
// In case the event dispatcher is waiting for more
// events somewhere, we post a dummy event to wake it up:
QMacCocoaAutoReleasePool pool;
- [NSApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined location:NSZeroPoint
+ [[NSApplication sharedApplication] postEvent:[NSEvent otherEventWithType:NSApplicationDefined
+ location:NSZeroPoint
modifierFlags:0 timestamp:0. windowNumber:0 context:0
subtype:QtCocoaEventSubTypeWakeup data1:0 data2:0] atStart:NO];
}
@@ -1110,7 +1111,7 @@ void QEventDispatcherMac::interrupt()
#else
// We do nothing more here than setting d->interrupt = true, and
// poke the event loop if it is sleeping. Actually stopping
- // NSApp, or the current modal session, is done inside the send
+ // NSApplication, or the current modal session, is done inside the send
// posted events callback. We do this to ensure that all current pending
// cocoa events gets delivered before we stop. Otherwise, if we now stop
// the last event loop recursion, cocoa will just drop pending posted
@@ -1165,7 +1166,7 @@ QtMacInterruptDispatcherHelp::QtMacInterruptDispatcherHelp() : cancelled(false)
// The whole point of this class is that we enable a way to interrupt
// the event dispatcher when returning back to a lower recursion level
// than where interruptLater was called. This is needed to detect if
- // [NSApp run] should still be running at the recursion level it is at.
+ // [NSApplication run] should still be running at the recursion level it is at.
// Since the interrupt is canceled if processEvents is called before
// this object gets deleted, we also avoid interrupting unnecessary.
deleteLater();
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
index 747a42a..cb4057c 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm
@@ -1697,7 +1697,7 @@ void qt_cocoaPostMessage(id target, SEL selector, int argCount, id arg1, id arg2
NSEvent *e = [NSEvent otherEventWithType:NSApplicationDefined
location:NSZeroPoint modifierFlags:0 timestamp:0 windowNumber:0
context:nil subtype:QtCocoaEventSubTypePostMessage data1:lower data2:upper];
- [NSApp postEvent:e atStart:NO];
+ [[NSApplication sharedApplication] postEvent:e atStart:NO];
}
void qt_cocoaPostMessageAfterEventLoopExit(id target, SEL selector, int argCount, id arg1, id arg2)
@@ -1727,7 +1727,7 @@ void qt_mac_post_retranslateAppMenu()
{
#ifdef QT_MAC_USE_COCOA
QMacCocoaAutoReleasePool pool;
- qt_cocoaPostMessage([NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)], @selector(qtTranslateApplicationMenu));
+ qt_cocoaPostMessage([[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)], @selector(qtTranslateApplicationMenu));
#endif
}
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index f58a755..7e9ebb9 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -220,7 +220,7 @@ static QSize qt_mac_desktopSize()
static NSDrawer *qt_mac_drawer_for(const QWidget *widget)
{
NSView *widgetView = reinterpret_cast<NSView *>(widget->window()->effectiveWinId());
- NSArray *windows = [NSApp windows];
+ NSArray *windows = [[NSApplication sharedApplication] windows];
for (NSWindow *window in windows) {
NSArray *drawers = [window drawers];
for (NSDrawer *drawer in drawers) {
@@ -254,7 +254,7 @@ static void qt_mac_destructWindow(OSWindowRef window)
{
#ifdef QT_MAC_USE_COCOA
if ([window isVisible] && [window isSheet]){
- [NSApp endSheet:window];
+ [[NSApplication sharedApplication] endSheet:window];
[window orderOut:window];
}
@@ -2439,7 +2439,7 @@ void QWidgetPrivate::recreateMacWindow()
}
if ([oldWindow isVisible]){
if ([oldWindow isSheet])
- [NSApp endSheet:oldWindow];
+ [[NSApplication sharedApplication] endSheet:oldWindow];
[oldWindow orderOut:oldWindow];
show_sys();
}
@@ -3554,7 +3554,7 @@ void QWidgetPrivate::show_sys()
}
#ifdef QT_MAC_USE_COCOA
- if ([NSApp isActive] && !qt_button_down && !QWidget::mouseGrabber()){
+ if ([[NSApplication sharedApplication] isActive] && !qt_button_down && !QWidget::mouseGrabber()){
// Update enter/leave immidiatly, don't wait for a move event. But only
// if no grab exists (even if the grab points to this widget, it seems, ref X11)
QPoint qlocal, qglobal;
@@ -3605,7 +3605,7 @@ void QWidgetPrivate::hide_sys()
else
HideSheetWindow(window);
#else
- [NSApp endSheet:window];
+ [[NSApplication sharedApplication] endSheet:window];
[window orderOut:window];
#endif
} else if(qt_mac_is_macdrawer(q)) {
@@ -3716,7 +3716,7 @@ void QWidgetPrivate::hide_sys()
}
#ifdef QT_MAC_USE_COCOA
- if ([NSApp isActive] && !qt_button_down && !QWidget::mouseGrabber()){
+ if ([[NSApplication sharedApplication] isActive] && !qt_button_down && !QWidget::mouseGrabber()){
// Update enter/leave immidiatly, don't wait for a move event. But only
// if no grab exists (even if the grab points to this widget, it seems, ref X11)
QPoint qlocal, qglobal;
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 78d0d19..ff3696c 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -780,7 +780,7 @@ static QSize qt_aqua_get_known_size(QStyle::ContentsType ct, const QWidget *widg
if (!GetThemeMenuBarHeight(&size))
ret = QSize(-1, size);
#else
- ret = QSize(-1, [[NSApp mainMenu] menuBarHeight]);
+ ret = QSize(-1, [[[NSApplication sharedApplication] mainMenu] menuBarHeight]);
// In the qt_mac_set_native_menubar(false) case,
// we come it here with a zero-height main menu,
// preventing the in-window menu from displaying.
diff --git a/src/gui/util/qsystemtrayicon_mac.mm b/src/gui/util/qsystemtrayicon_mac.mm
index 3d7ca14..07e3ea2 100644
--- a/src/gui/util/qsystemtrayicon_mac.mm
+++ b/src/gui/util/qsystemtrayicon_mac.mm
@@ -536,7 +536,7 @@ private:
#ifndef QT_MAC_USE_COCOA
const short scale = GetMBarHeight();
#else
- const short scale = [[NSApp mainMenu] menuBarHeight];
+ const short scale = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
#endif
NSImage *nsimage = static_cast<NSImage *>(qt_mac_create_nsimage(icon.pixmap(QSize(scale, scale))));
[item setImage: nsimage];
diff --git a/src/gui/widgets/qcocoamenu_mac.mm b/src/gui/widgets/qcocoamenu_mac.mm
index c31416a..54bf11c 100644
--- a/src/gui/widgets/qcocoamenu_mac.mm
+++ b/src/gui/widgets/qcocoamenu_mac.mm
@@ -202,7 +202,7 @@ QT_USE_NAMESPACE
static SEL selForOFCP = NSSelectorFromString(@"orderFrontCharacterPalette:");
if (index == -1 && selForOFCP == actionSelector) {
// Check if the 'orderFrontCharacterPalette' SEL exists for QCocoaMenuLoader object
- QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = [NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)];
+ QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = [[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)];
return [super indexOfItemWithTarget:loader andAction:actionSelector];
}
return index;
diff --git a/src/gui/widgets/qmenu_mac.mm b/src/gui/widgets/qmenu_mac.mm
index 12ef70d..669f824 100644
--- a/src/gui/widgets/qmenu_mac.mm
+++ b/src/gui/widgets/qmenu_mac.mm
@@ -179,7 +179,7 @@ static void cancelAllMenuTracking()
{
#ifdef QT_MAC_USE_COCOA
QMacCocoaAutoReleasePool pool;
- NSMenu *mainMenu = [NSApp mainMenu];
+ NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];
[mainMenu cancelTracking];
for (NSMenuItem *item in [mainMenu itemArray]) {
if ([item submenu]) {
@@ -633,7 +633,7 @@ static inline void syncMenuBarItemsVisiblity(const QMenuBarPrivate::QMacMenuBarP
static inline QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *getMenuLoader()
{
- return [NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)];
+ return [[NSApplication sharedApplication] QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)];
}
static NSMenuItem *createNSMenuItem(const QString &title)
@@ -2033,7 +2033,7 @@ void qt_mac_clear_menubar()
QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = getMenuLoader();
NSMenu *menu = [loader menu];
[loader ensureAppMenuInMenu:menu];
- [NSApp setMainMenu:menu];
+ [[NSApplication sharedApplication] setMainMenu:menu];
const bool modal = qt_mac_should_disable_menu(0);
if (qt_mac_current_menubar.qmenubar || modal != qt_mac_current_menubar.modal)
qt_mac_set_modal_state(menu, modal);
@@ -2100,7 +2100,7 @@ bool QMenuBarPrivate::macUpdateMenuBarImmediatly()
#else
QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = getMenuLoader();
[loader ensureAppMenuInMenu:menu];
- [NSApp setMainMenu:menu];
+ [[NSApplication sharedApplication] setMainMenu:menu];
syncMenuBarItemsVisiblity(mb->d_func()->mac_menubar);
if (OSMenuRef tmpMerge = QMenuPrivate::mergeMenuHash.value(menu)) {
@@ -2140,7 +2140,7 @@ bool QMenuBarPrivate::macUpdateMenuBarImmediatly()
#else
QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = getMenuLoader();
[loader ensureAppMenuInMenu:menu];
- [NSApp setMainMenu:menu];
+ [[NSApplication sharedApplication] setMainMenu:menu];
syncMenuBarItemsVisiblity(qt_mac_current_menubar.qmenubar->d_func()->mac_menubar);
#endif
qt_mac_set_modal_state(menu, modal);