feat(settings-daemon): init fonts name on first login

pull/39/head
kateleet 4 years ago
parent 15e74b5c22
commit 2e22bd2efc

@ -41,7 +41,7 @@ Application::Application(int &argc, char **argv)
, m_themeManager(ThemeManager::self()) , m_themeManager(ThemeManager::self())
, m_brightnessManager(new BrightnessManager(this)) , m_brightnessManager(new BrightnessManager(this))
, m_upowerManager(new UPowerManager(this)) , m_upowerManager(new UPowerManager(this))
, m_language(new Language(this)) , m_language(Language::self())
, m_mouse(new Mouse) , m_mouse(new Mouse)
, m_touchpad(new TouchpadManager) , m_touchpad(new TouchpadManager)
// , m_kwinTimer(new QTimer(this)) // , m_kwinTimer(new QTimer(this))

@ -24,6 +24,12 @@
#include <QDBusInterface> #include <QDBusInterface>
#include <QSettings> #include <QSettings>
Language *Language::self()
{
static Language s;
return &s;
}
Language::Language(QObject *parent) Language::Language(QObject *parent)
: QObject(parent) : QObject(parent)
, m_settings(new QSettings(QStringLiteral("cutefishos"), QStringLiteral("language"))) , m_settings(new QSettings(QStringLiteral("cutefishos"), QStringLiteral("language")))

@ -29,6 +29,7 @@ class Language : public QObject
Q_PROPERTY(QString languageCode READ languageCode WRITE setLanguage NOTIFY languageChanged) Q_PROPERTY(QString languageCode READ languageCode WRITE setLanguage NOTIFY languageChanged)
public: public:
static Language *self();
Language(QObject *parent = nullptr); Language(QObject *parent = nullptr);
QString languageCode() const; QString languageCode() const;

@ -79,6 +79,33 @@ ThemeManager::ThemeManager(QObject *parent)
// Start the DE and need to update the settings again. // Start the DE and need to update the settings again.
initGtkConfig(); initGtkConfig();
// Init fonts.
if (!m_settings->contains(s_systemFixedFontName)) {
m_settings->setValue(s_systemFixedFontName, "Monospace");
}
if (!m_settings->contains(s_systemFontName)) {
QSettings lanSettings(QStringLiteral("cutefishos"), QStringLiteral("language"));
QString languageCode = lanSettings.value("language").toString();
QString fontName;
if (languageCode == "zh_CN") {
fontName = "Noto Sans CJK SC";
} else if (languageCode.contains("en_")) {
fontName = "Noto Sans";
} else if (languageCode == "zh_TW") {
fontName = "Noto Sans CJK TC";
} else if (languageCode == "zh_HK") {
fontName = "Noto Serif CJK HK";
} else if (languageCode == "ja_JP") {
fontName = "Noto Serif CJK JP";
} else {
fontName = "Noto Sans";
}
m_settings->setValue(s_systemFontName, fontName);
}
// 登陆后更新 fontconfig // 登陆后更新 fontconfig
updateFontConfig(); updateFontConfig();
} }

Loading…
Cancel
Save