diff --git a/main/NekoGui.cpp b/main/NekoGui.cpp index c198557..4971fd3 100644 --- a/main/NekoGui.cpp +++ b/main/NekoGui.cpp @@ -258,6 +258,7 @@ namespace NekoGui { _add(new configItem("remember_id", &remember_id, itemType::integer)); _add(new configItem("remember_enable", &remember_enable, itemType::boolean)); _add(new configItem("language", &language, itemType::integer)); + _add(new configItem("font", &font, itemType::string)); _add(new configItem("spmode2", &remember_spmode, itemType::stringList)); _add(new configItem("skip_cert", &skip_cert, itemType::boolean)); _add(new configItem("hk_mw", &hotkey_mainwindow, itemType::string)); diff --git a/main/NekoGui_DataStore.hpp b/main/NekoGui_DataStore.hpp index 7c2b36e..bff2517 100644 --- a/main/NekoGui_DataStore.hpp +++ b/main/NekoGui_DataStore.hpp @@ -85,6 +85,7 @@ namespace NekoGui { bool mux_default_on = false; QString theme = "0"; int language = 0; + QString font; QString mw_size = ""; QStringList log_ignore = {}; bool start_minimal = false; diff --git a/main/main.cpp b/main/main.cpp index 4e07e76..767154b 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -229,6 +229,10 @@ int main(int argc, char* argv[]) { QGuiApplication::tr("QT_LAYOUT_DIRECTION"); loadTranslate(locale); + if (!NekoGui::dataStore->font.isEmpty()) { + qApp->setFont(NekoGui::dataStore->font); + } + // Signals signal(SIGTERM, signal_handler); signal(SIGINT, signal_handler); diff --git a/ui/dialog_basic_settings.cpp b/ui/dialog_basic_settings.cpp index 6f94498..5ebc241 100644 --- a/ui/dialog_basic_settings.cpp +++ b/ui/dialog_basic_settings.cpp @@ -14,6 +14,7 @@ #include #include #include +#include class ExtraCoreWidget : public QWidget { public: @@ -99,6 +100,11 @@ DialogBasicSettings::DialogBasicSettings(QWidget *parent) connect(ui->language, static_cast(&QComboBox::currentIndexChanged), this, [=](int index) { CACHE.needRestart = true; }); + ui->font->addItems(QFontDatabase::families()); + ui->font->setCurrentText(qApp->font().family()); + connect(ui->font, &QComboBox::currentTextChanged, this, [=](const QString &font) { + CACHE.needRestart = true; + }); // ui->theme->addItems(QStyleFactory::keys()); ui->theme->addItem("QDarkStyle"); @@ -253,6 +259,7 @@ void DialogBasicSettings::accept() { // Style NekoGui::dataStore->language = ui->language->currentIndex(); + NekoGui::dataStore->font = ui->font->currentText(); D_SAVE_BOOL(start_minimal) D_SAVE_INT(max_log_line) diff --git a/ui/dialog_basic_settings.ui b/ui/dialog_basic_settings.ui index d2e1373..a182bd6 100644 --- a/ui/dialog_basic_settings.ui +++ b/ui/dialog_basic_settings.ui @@ -23,10 +23,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok @@ -173,99 +173,6 @@ Style - - - - - - - - - - 0 - 0 - - - - Theme - - - - - - - - System - - - - - - - - - 0 - 0 - - - - Set custom icon - - - - - - - - - - - - - - 0 - 0 - - - - Language - - - - - - - - System - - - - - English - - - - - 简体中文 - - - - - فارسی - - - - - Русский - - - - - - - - - @@ -383,6 +290,109 @@ + + + + + + + + + + 0 + 0 + + + + Theme + + + + + + + + System + + + + + + + + + 0 + 0 + + + + Set custom icon + + + + + + + + + + + + + + 0 + 0 + + + + Language + + + + + + + Font + + + + + + + + System + + + + + English + + + + + 简体中文 + + + + + فارسی + + + + + Русский + + + + + + + + + + + + @@ -754,7 +764,7 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame true @@ -764,8 +774,8 @@ 0 0 - 688 - 372 + 700 + 402