diff options
author | Fabien Freling <fabien.freling@nokia.com> | 2010-03-26 11:34:54 (GMT) |
---|---|---|
committer | Samuli Piippo <samuli.piippo@digia.com> | 2011-06-09 10:05:31 (GMT) |
commit | 5dab51e015d54a895d480eff11f6313099e44e4b (patch) | |
tree | 164dd9412e0caf474d544d0dbd677eae4c50e60f | |
parent | e724cc03c9506e7c610df7d8ff462f994a7b114d (diff) | |
download | Qt-5dab51e015d54a895d480eff11f6313099e44e4b.zip Qt-5dab51e015d54a895d480eff11f6313099e44e4b.tar.gz Qt-5dab51e015d54a895d480eff11f6313099e44e4b.tar.bz2 |
Fix the bug where the ampersand symbol would be discarded.
We are now checking that the QAction is not related
to the About or Quit button on Mac OS X
Task-number: QTBUG-7540
Reviewed-by: Morten Sorvig
(cherry picked from commit c19cb39ddbfd93802bfe61ecaa4f737a1bd1c1bb)
-rw-r--r-- | src/gui/styles/qmacstyle_mac.mm | 4 | ||||
-rw-r--r-- | src/gui/widgets/qmenu_mac.mm | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm index c39f239..507ae4b 100644 --- a/src/gui/styles/qmacstyle_mac.mm +++ b/src/gui/styles/qmacstyle_mac.mm @@ -432,13 +432,13 @@ static inline bool isTreeView(const QWidget *widget) QString qt_mac_removeMnemonics(const QString &original) { - // copied from qt_format_text (to be bug-for-bug compatible). QString returnText(original.size(), 0); int finalDest = 0; int currPos = 0; int l = original.length(); while (l) { - if (original.at(currPos) == QLatin1Char('&')) { + if (original.at(currPos) == QLatin1Char('&') + && (l == 1 || original.at(currPos + 1) != QLatin1Char('&'))) { ++currPos; --l; if (l == 0) diff --git a/src/gui/widgets/qmenu_mac.mm b/src/gui/widgets/qmenu_mac.mm index 772e409..8c13fd2 100644 --- a/src/gui/widgets/qmenu_mac.mm +++ b/src/gui/widgets/qmenu_mac.mm @@ -1420,7 +1420,11 @@ QMenuPrivate::QMacMenuPrivate::syncAction(QMacMenuAction *action) } else { [item setTitle: qt_mac_QStringToNSString(finalString)]; } - [item setTitle:qt_mac_QStringToNSString(qt_mac_removeMnemonics(text))]; + + if (action->action->menuRole() == QAction::AboutRole || action->action->menuRole() == QAction::QuitRole) + [item setTitle:qt_mac_QStringToNSString(text)]; + else + [item setTitle:qt_mac_QStringToNSString(qt_mac_removeMnemonics(text))]; // Cocoa Enabled [item setEnabled: action->action->isEnabled()]; |