Qt Designer: Load translations only when designer_<LANG>.qm is present.
authorFriedemann Kleint <Friedemann.Kleint@digia.com>
Mon, 6 Oct 2014 08:28:36 +0000 (10:28 +0200)
committerFriedemann Kleint <Friedemann.Kleint@digia.com>
Mon, 6 Oct 2014 12:03:36 +0000 (14:03 +0200)
Try to load designer_<LANG>.qm first and load qt_<LANG>.qm only
if the former succeeds.

Task-number: QTBUG-41790
Change-Id: Id4862019edf81da81bf9d059c586bbfee18ab7e6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
src/designer/src/designer/qdesigner.cpp

index d55c504..b8136ca 100644 (file)
@@ -209,19 +209,14 @@ void QDesigner::initialize()
     QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
     parseCommandLineArgs(files, resourceDir);
 
-    QTranslator *translator = new QTranslator(this);
-    QTranslator *qtTranslator = new QTranslator(this);
-
     const QString localSysName = QLocale::system().name();
-    QString  translatorFileName = QStringLiteral("designer_");
-    translatorFileName += localSysName;
-    translator->load(translatorFileName, resourceDir);
-
-    translatorFileName = QStringLiteral("qt_");
-    translatorFileName += localSysName;
-    qtTranslator->load(translatorFileName, resourceDir);
-    installTranslator(translator);
-    installTranslator(qtTranslator);
+    QScopedPointer<QTranslator> designerTranslator(new QTranslator(this));
+    if (designerTranslator->load(QStringLiteral("designer_") + localSysName, resourceDir)) {
+        installTranslator(designerTranslator.take());
+        QScopedPointer<QTranslator> qtTranslator(new QTranslator(this));
+        if (qtTranslator->load(QStringLiteral("qt_") + localSysName, resourceDir))
+            installTranslator(qtTranslator.take());
+    }
 
     m_workbench = new QDesignerWorkbench();