diff options
-rw-r--r-- | src/gui/dialogs/qcolordialog_mac.mm | 10 | ||||
-rw-r--r-- | src/gui/dialogs/qfiledialog_mac.mm | 6 | ||||
-rw-r--r-- | src/gui/dialogs/qfontdialog_mac.mm | 10 | ||||
-rw-r--r-- | src/gui/kernel/qapplication_mac.mm | 14 | ||||
-rw-r--r-- | src/gui/kernel/qcocoaapplication_mac.mm | 10 | ||||
-rw-r--r-- | src/gui/kernel/qcocoaapplicationdelegate_mac.mm | 12 | ||||
-rw-r--r-- | src/gui/kernel/qcocoaapplicationdelegate_mac_p.h | 4 | ||||
-rw-r--r-- | src/gui/kernel/qcocoamenuloader_mac.mm | 18 | ||||
-rw-r--r-- | src/gui/kernel/qcocoasharedwindowmethods_mac_p.h | 6 | ||||
-rw-r--r-- | src/gui/kernel/qeventdispatcher_mac.mm | 55 | ||||
-rw-r--r-- | src/gui/kernel/qt_cocoa_helpers_mac.mm | 4 | ||||
-rw-r--r-- | src/gui/kernel/qwidget_mac.mm | 12 | ||||
-rw-r--r-- | src/gui/styles/qmacstyle_mac.mm | 2 | ||||
-rw-r--r-- | src/gui/util/qsystemtrayicon_mac.mm | 2 | ||||
-rw-r--r-- | src/gui/widgets/qcocoamenu_mac.mm | 2 | ||||
-rw-r--r-- | src/gui/widgets/qmenu_mac.mm | 10 | ||||
-rw-r--r-- | tests/auto/qfontdialog/tst_qfontdialog_mac_helpers.mm | 5 |
17 files changed, 92 insertions, 90 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); diff --git a/tests/auto/qfontdialog/tst_qfontdialog_mac_helpers.mm b/tests/auto/qfontdialog/tst_qfontdialog_mac_helpers.mm index 978133a..52b38a2 100644 --- a/tests/auto/qfontdialog/tst_qfontdialog_mac_helpers.mm +++ b/tests/auto/qfontdialog/tst_qfontdialog_mac_helpers.mm @@ -45,7 +45,7 @@ void click_cocoa_button() { QMacCocoaAutoReleasePool pool; - NSArray *windows = [NSApp windows]; + NSArray *windows = [[NSApplication sharedApplication] windows]; for (NSWindow *window in windows) { // This is NOT how one should do RTTI, but since I don't want to leak the class too much... if ([[window delegate] respondsToSelector:@selector(qtFont)]) { @@ -54,7 +54,8 @@ void click_cocoa_button() if ([view isKindOfClass:[NSButton class]] && [[static_cast<NSButton *>(view) title] isEqualTo:@"OK"]) { [static_cast<NSButton *>(view) performClick:view]; - [NSApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined location:NSZeroPoint + [[NSApplication sharedApplication] postEvent:[NSEvent + otherEventWithType:NSApplicationDefined location:NSZeroPoint modifierFlags:0 timestamp:0. windowNumber:0 context:0 subtype:SHRT_MAX data1:0 data2:0] atStart:NO]; |