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