diff options
author | Andy Shaw <andy.shaw@qt.io> | 2020-08-18 07:34:26 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2020-09-05 02:11:05 +0200 |
commit | ee55cd6b0c8556511d4c3d53848b3560d7b7f58f (patch) | |
tree | 81ce7284d690ae6d2d114ae9967683b58f053216 | |
parent | f919d9a2dad9412c64e74b19eee2b8429da2d3bb (diff) |
Cocoa: Translate the buttons used for the native font and color dialogs
Use the QPlatformDialogHelper standard buttons to get the translated
button text as then this will already have been translated for those
loading a translation.
Fixes: QTBUG-85725
Change-Id: Ia42d93aeb6e1b5c0528564a6c960a35f6710c8eb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit ade59ea316dc17ff6c25fb10939a03008a70c11b)
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoahelpers.h | 3 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoahelpers.mm | 10 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.h b/src/plugins/platforms/cocoa/qcocoahelpers.h index 1d8461d5f2..514d3ac550 100644 --- a/src/plugins/platforms/cocoa/qcocoahelpers.h +++ b/src/plugins/platforms/cocoa/qcocoahelpers.h @@ -55,6 +55,7 @@ #include <QtCore/qoperatingsystemversion.h> #include <QtGui/qpalette.h> #include <QtGui/qscreen.h> +#include <qpa/qplatformdialoghelper.h> #include <objc/runtime.h> #include <objc/message.h> @@ -199,7 +200,7 @@ QT_END_NAMESPACE - (instancetype)initWithPanelDelegate:(id<QNSPanelDelegate>)panelDelegate; - (void)dealloc; -- (NSButton *)createButtonWithTitle:(const char *)title; +- (NSButton *)createButtonWithTitle:(QPlatformDialogHelper::StandardButton)type; - (void)layout; @end diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.mm b/src/plugins/platforms/cocoa/qcocoahelpers.mm index 5374199360..2b1e512cf3 100644 --- a/src/plugins/platforms/cocoa/qcocoahelpers.mm +++ b/src/plugins/platforms/cocoa/qcocoahelpers.mm @@ -394,11 +394,10 @@ QT_END_NAMESPACE { if ((self = [super initWithFrame:NSZeroRect])) { // create OK and Cancel buttons and add these as subviews - _okButton = [self createButtonWithTitle:"&OK"]; + _okButton = [self createButtonWithTitle:QPlatformDialogHelper::Ok]; _okButton.action = @selector(onOkClicked); _okButton.target = panelDelegate; - - _cancelButton = [self createButtonWithTitle:"Cancel"]; + _cancelButton = [self createButtonWithTitle:QPlatformDialogHelper::Cancel]; _cancelButton.action = @selector(onCancelClicked); _cancelButton.target = panelDelegate; @@ -422,12 +421,13 @@ QT_END_NAMESPACE [super dealloc]; } -- (NSButton *)createButtonWithTitle:(const char *)title +- (NSButton *)createButtonWithTitle:(QPlatformDialogHelper::StandardButton)type { NSButton *button = [[NSButton alloc] initWithFrame:NSZeroRect]; button.buttonType = NSMomentaryLightButton; button.bezelStyle = NSRoundedBezelStyle; - const QString &cleanTitle = QPlatformTheme::removeMnemonics(QCoreApplication::translate("QDialogButtonBox", title)); + const QString &cleanTitle = + QPlatformTheme::removeMnemonics(QGuiApplicationPrivate::platformTheme()->standardButtonText(type)); // FIXME: Not obvious, from Cocoa's documentation, that QString::toNSString() makes a deep copy button.title = (NSString *)cleanTitle.toCFString(); ((NSButtonCell *)button.cell).font = |