diff main/main.cpp @ 2458:74d73990ac1d background-mode

Toward Windows background-mode support
author Chris Cannam
date Fri, 17 Jan 2020 21:43:40 +0000
parents 119588c42772
children c12b8c696aba
line wrap: on
line diff
--- a/main/main.cpp	Fri Jan 17 13:51:22 2020 +0000
+++ b/main/main.cpp	Fri Jan 17 21:43:40 2020 +0000
@@ -44,6 +44,8 @@
 #include <QFileOpenEvent>
 #include <QCommandLineParser>
 #include <QSslSocket>
+#include <QFont>
+#include <QFontInfo>
 
 #include <iostream>
 #include <signal.h>
@@ -322,6 +324,30 @@
 
     QSettings settings;
 
+    QString language = QLocale::system().name();
+    SVDEBUG << "System language is: " << language << endl;
+
+    settings.beginGroup("Preferences");
+    QString prefLanguage = settings.value("locale", language).toString();
+    if (prefLanguage != QString()) language = prefLanguage;
+    settings.endGroup();
+
+    settings.beginGroup("Preferences");
+    if (!(settings.value("always-use-default-font", false).toBool())) {
+#ifdef Q_OS_WIN32
+        if (!language.startsWith("ru_")) { // + any future non-Latin i18ns
+            QFont font(QApplication::font());
+            QString preferredFamily = "Segoe UI";
+            font.setFamily(preferredFamily);
+            if (QFontInfo(font).family() == preferredFamily) {
+                font.setPointSize(9);
+                QApplication::setFont(font);
+            }
+        }
+#endif
+    }
+    settings.endGroup();
+
     settings.beginGroup("Preferences");
     // Default to using Piper server; can change in preferences
     if (!settings.contains("run-vamp-plugins-in-process")) {
@@ -355,14 +381,6 @@
     }
     QApplication::setWindowIcon(icon);
 
-    QString language = QLocale::system().name();
-    SVDEBUG << "System language is: " << language << endl;
-
-    settings.beginGroup("Preferences");
-    QString prefLanguage = settings.value("locale", language).toString();
-    if (prefLanguage != QString()) language = prefLanguage;
-    settings.endGroup();
-
     QTranslator qtTranslator;
     QString qtTrName = QString("qt_%1").arg(language);
     SVDEBUG << "Loading " << qtTrName << "... ";