diff options
| author | Dominyk Tiller | 2014-09-10 22:52:32 +0100 |
|---|---|---|
| committer | Jack Nagel | 2014-09-10 23:22:43 -0500 |
| commit | 6103ab39f58c2c4686290fba548af92d77628f76 (patch) | |
| tree | 705f93e43c1461b549f34e86a1face9ff3bd7c7b /Library/Formula | |
| parent | 28716cd13ccc5ab4fa5b2d9139bc2eeec4b33f87 (diff) | |
| download | homebrew-6103ab39f58c2c4686290fba548af92d77628f76.tar.bz2 | |
Qt: Fix Patch
Addresses the issues with the inline patch discussed in #32215.
Upstream is also applying this patch (or one extremely similar) to all
future Qt4 versions, so it doesn’t need to be scoped to any specific OS
X version.
Closes #32220.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library/Formula')
| -rw-r--r-- | Library/Formula/qt.rb | 802 |
1 files changed, 16 insertions, 786 deletions
diff --git a/Library/Formula/qt.rb b/Library/Formula/qt.rb index bdbf2fe90..16fd4ec29 100644 --- a/Library/Formula/qt.rb +++ b/Library/Formula/qt.rb @@ -1,13 +1,20 @@ require 'formula' class Qt < Formula - homepage 'http://qt-project.org/' - # Mirror rather than source set as primary because source is very slow. - url "http://qtmirror.ics.com/pub/qtproject/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz" - mirror "http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz" - sha1 "ddf9c20ca8309a116e0466c42984238009525da6" - - head 'git://gitorious.org/qt/qt.git', :branch => '4.8' + homepage "http://qt-project.org/" + + stable do + # Mirror rather than source set as primary because source is very slow. + url "http://qtmirror.ics.com/pub/qtproject/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz" + mirror "http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz" + sha1 "ddf9c20ca8309a116e0466c42984238009525da6" + + # This patch should be able to be removed with the next stable Qt4 release. + patch do + url "https://raw.githubusercontent.com/DomT4/scripts/440e3cafde5bf6ec6f50cd28fa5bf89c280f1b53/Homebrew_Resources/Qt/qt4patch.diff" + sha1 "57246a33460246118a1fab7460c79f2077d3a929" + end + end bottle do revision 5 @@ -16,6 +23,8 @@ class Qt < Formula sha1 "18b1d1a4aa89f92c4b9a9f202a95cc0896e03a9d" => :lion end + head "git://gitorious.org/qt/qt.git", :branch => '4.8' + option :universal option 'with-qt3support', 'Build with deprecated Qt3Support module support' option 'with-docs', 'Build documentation' @@ -24,8 +33,6 @@ class Qt < Formula depends_on "d-bus" => :optional depends_on "mysql" => :optional - patch :DATA if MacOS.version >= :yosemite - def install ENV.universal_binary if build.universal? @@ -109,780 +116,3 @@ class Qt < Formula EOS end end - -__END__ -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); |
