diff --git a/main/main.cpp b/main/main.cpp
index 2465fa3..b90c216 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -32,12 +32,13 @@ int main(int argc, char *argv[]) {
Windows_SetCrashHandler();
#endif
- QApplication a(argc, argv);
+ // pre-init QApplication
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QApplication::setAttribute(Qt::AA_DisableWindowContextHelpButton);
#endif
QApplication::setAttribute(Qt::AA_DontUseNativeDialogs);
QApplication::setQuitOnLastWindowClosed(false);
+ auto preQApp = new QApplication(argc, argv);
// Clean
QDir::setCurrent(QApplication::applicationDirPath());
@@ -74,6 +75,16 @@ int main(int argc, char *argv[]) {
QDir::setCurrent(wd.absoluteFilePath("config"));
QDir("temp").removeRecursively();
+ // HiDPI workaround
+ if (ReadFileText("./groups/HiDPI").toInt() == 1) {
+ QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+ QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+ }
+
+ // init QApplication
+ delete preQApp;
+ QApplication a(argc, argv);
+
// RunGuard
RunGuard guard("nekoray" + wd.absolutePath());
quint64 guard_data_in = GetRandomUint64();
diff --git a/translations/fa_IR.ts b/translations/fa_IR.ts
index 04a18ad..ce5a2a4 100644
--- a/translations/fa_IR.ts
+++ b/translations/fa_IR.ts
@@ -229,6 +229,10 @@
Password
+
+ Maybe useful for HiDPI screens.
+
+
DialogEditGroup
diff --git a/translations/zh_CN.ts b/translations/zh_CN.ts
index d3c918e..13659b8 100644
--- a/translations/zh_CN.ts
+++ b/translations/zh_CN.ts
@@ -227,6 +227,10 @@
Password
密码
+
+ Maybe useful for HiDPI screens.
+
+
DialogEditGroup
diff --git a/ui/dialog_basic_settings.cpp b/ui/dialog_basic_settings.cpp
index b31565d..21b2421 100644
--- a/ui/dialog_basic_settings.cpp
+++ b/ui/dialog_basic_settings.cpp
@@ -54,6 +54,7 @@ public:
DialogBasicSettings::DialogBasicSettings(QWidget *parent)
: QDialog(parent), ui(new Ui::DialogBasicSettings) {
ui->setupUi(this);
+ ADD_ASTERISK(this);
// Common
@@ -142,6 +143,20 @@ DialogBasicSettings::DialogBasicSettings(QWidget *parent)
mainwindow->repaint();
NekoRay::dataStore->Save();
});
+ //
+ ui->AA_EnableHighDpiScaling->setChecked(ReadFileText("groups/HiDPI").toInt() == 1);
+ connect(ui->AA_EnableHighDpiScaling, &QCheckBox::clicked, this, [=](bool checked) {
+ QFile file;
+ file.setFileName("groups/HiDPI");
+ file.open(QIODevice::ReadWrite | QIODevice::Truncate);
+ if (checked) {
+ file.write("1");
+ } else {
+ file.write("0");
+ }
+ file.close();
+ MessageBoxWarning(tr("Settings changed"), tr("Restart nekoray to take effect."));
+ });
// Subscription
diff --git a/ui/dialog_basic_settings.ui b/ui/dialog_basic_settings.ui
index c0ff10c..6c3a677 100644
--- a/ui/dialog_basic_settings.ui
+++ b/ui/dialog_basic_settings.ui
@@ -443,7 +443,7 @@
-
-
+
-
@@ -455,23 +455,33 @@
-
-
+
+
+
+ 0
+ 0
+
+
+
-
-
-
- Qt::Horizontal
-
-
-
- 0
- 0
-
-
-
+
+
+
-
+
+
+ Maybe useful for HiDPI screens.
+
+
+ Qt::AA_EnableHighDpiScaling
+
+
+
+
+