From 17fb150f10d7b0542f37a77c3c8b627e239d3f62 Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Thu, 11 Nov 2010 12:53:02 +0100 Subject: [PATCH] Fix ui language for custom wizards. Introduces a ICore::userInterfaceLanguage method, which centralizes the previous qApp property hack for help and designer integration. Reviewed-by: Friedemann Kleint --- src/plugins/coreplugin/coreimpl.cpp | 5 +++++ src/plugins/coreplugin/coreimpl.h | 1 + src/plugins/coreplugin/icore.h | 1 + src/plugins/designer/formeditorplugin.cpp | 2 +- src/plugins/help/helpplugin.cpp | 2 +- .../customwizard/customwizardparameters.cpp | 7 +++---- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/plugins/coreplugin/coreimpl.cpp b/src/plugins/coreplugin/coreimpl.cpp index 5a8619ab3a3..1628bea8246 100644 --- a/src/plugins/coreplugin/coreimpl.cpp +++ b/src/plugins/coreplugin/coreimpl.cpp @@ -164,6 +164,11 @@ QPrinter *CoreImpl::printer() const return m_mainwindow->printer(); } +QString CoreImpl::userInterfaceLanguage() const +{ + return qApp->property("qtc_locale").toString(); +} + #ifdef Q_OS_MAC # define SHARE_PATH "/../Resources" #else diff --git a/src/plugins/coreplugin/coreimpl.h b/src/plugins/coreplugin/coreimpl.h index e8e114cbbab..4fd1149e80f 100644 --- a/src/plugins/coreplugin/coreimpl.h +++ b/src/plugins/coreplugin/coreimpl.h @@ -72,6 +72,7 @@ public: QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const; SettingsDatabase *settingsDatabase() const; QPrinter *printer() const; + QString userInterfaceLanguage() const; QString resourcePath() const; QString userResourcePath() const; diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h index c914a3c8e83..174a0d3f1bc 100644 --- a/src/plugins/coreplugin/icore.h +++ b/src/plugins/coreplugin/icore.h @@ -101,6 +101,7 @@ public: virtual QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const = 0; virtual SettingsDatabase *settingsDatabase() const = 0; virtual QPrinter *printer() const = 0; + virtual QString userInterfaceLanguage() const = 0; virtual QString resourcePath() const = 0; virtual QString userResourcePath() const = 0; diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp index ea7c04cac78..1c10c422ab0 100644 --- a/src/plugins/designer/formeditorplugin.cpp +++ b/src/plugins/designer/formeditorplugin.cpp @@ -86,7 +86,7 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error) addAutoReleasedObject(new FormEditorFactory); // Ensure that loading designer translations is done before FormEditorW is instantiated - const QString locale = qApp->property("qtc_locale").toString(); + const QString locale = Core::ICore::instance()->userInterfaceLanguage(); if (!locale.isEmpty()) { QTranslator *qtr = new QTranslator(this); const QString &creatorTrPath = diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index a50d1c46eb9..5a7b6fe5670 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -151,7 +151,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) Core::Context globalcontext(Core::Constants::C_GLOBAL); Core::Context modecontext(Constants::C_MODE_HELP); - const QString &locale = qApp->property("qtc_locale").toString(); + const QString &locale = m_core->userInterfaceLanguage(); if (!locale.isEmpty()) { QTranslator *qtr = new QTranslator(this); QTranslator *qhelptr = new QTranslator(this); diff --git a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp index d1b3662235c..8a908c36052 100644 --- a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp +++ b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp @@ -507,10 +507,9 @@ static inline QString attributeValue(const QXmlStreamReader &r, const char *name } // Return locale language attribute "de_UTF8" -> "de", empty string for "C" -static inline QString localeLanguage() +static inline QString languageSetting() { - QLocale loc; - QString name = loc.name(); + QString name = Core::ICore::instance()->userInterfaceLanguage(); const int underScorePos = name.indexOf(QLatin1Char('_')); if (underScorePos != -1) name.truncate(underScorePos); @@ -538,7 +537,7 @@ CustomWizardParameters::ParseResult clear(); bp->clear(); bp->setKind(Core::IWizard::ProjectWizard); - const QString language = localeLanguage(); + const QString language = languageSetting(); CustomWizardField field; do { token = reader.readNext(); -- GitLab