feat: Add change font feature

This commit is contained in:
Nova 2024-10-16 18:47:55 +03:30
parent 237641d977
commit 6d099e5399
No known key found for this signature in database
GPG Key ID: 389787EC83F5D73A
5 changed files with 121 additions and 98 deletions

View File

@ -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));

View File

@ -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;

View File

@ -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);

View File

@ -14,6 +14,7 @@
#include <QInputDialog>
#include <QMessageBox>
#include <QTimer>
#include <qfontdatabase.h>
class ExtraCoreWidget : public QWidget {
public:
@ -99,6 +100,11 @@ DialogBasicSettings::DialogBasicSettings(QWidget *parent)
connect(ui->language, static_cast<void (QComboBox::*)(int)>(&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)

View File

@ -23,10 +23,10 @@
<item row="8" column="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
</property>
</widget>
</item>
@ -173,99 +173,6 @@
<string>Style</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QHBoxLayout" name="style_h_1">
<item>
<widget class="QGroupBox" name="groupBox">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Theme</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="theme">
<item>
<property name="text">
<string notr="true">System</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="set_custom_icon">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Set custom icon</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox2">
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_15">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">Language</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="language">
<item>
<property name="text">
<string notr="true">System</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">English</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">简体中文</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">فارسی</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Русский</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="style_h_2">
<item>
@ -383,6 +290,109 @@
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="style_h_1">
<item>
<widget class="QGroupBox" name="groupBox">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Theme</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="theme">
<item>
<property name="text">
<string notr="true">System</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="set_custom_icon">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Set custom icon</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox2">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_15">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">Language</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Font</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="language">
<item>
<property name="text">
<string notr="true">System</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">English</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">简体中文</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">فارسی</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Русский</string>
</property>
</item>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="font"/>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
@ -754,7 +764,7 @@
<item>
<widget class="QScrollArea" name="extra_core_box_scrollArea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
<enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@ -764,8 +774,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>688</width>
<height>372</height>
<width>700</width>
<height>402</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">