HiDPI workaroud

This commit is contained in:
arm64v8a
2023-01-31 17:23:37 +09:00
parent 242fc1cb52
commit 1c0d0f8dbc
5 changed files with 58 additions and 14 deletions

View File

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

View File

@@ -229,6 +229,10 @@
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Maybe useful for HiDPI screens.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogEditGroup</name>

View File

@@ -227,6 +227,10 @@
<source>Password</source>
<translation></translation>
</message>
<message>
<source>Maybe useful for HiDPI screens.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogEditGroup</name>

View File

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

View File

@@ -443,7 +443,7 @@
</layout>
</item>
<item row="5" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_24" stretch="1,1">
<layout class="QHBoxLayout" name="horizontalLayout_24">
<item>
<widget class="QGroupBox" name="groupBox_2">
<layout class="QHBoxLayout" name="horizontalLayout_23">
@@ -455,23 +455,33 @@
</widget>
</item>
<item>
<widget class="QLineEdit" name="max_log_line"/>
<widget class="QLineEdit" name="max_log_line">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
<widget class="QGroupBox" name="groupBox_3">
<layout class="QHBoxLayout" name="horizontalLayout_25">
<item>
<widget class="QCheckBox" name="AA_EnableHighDpiScaling">
<property name="toolTip">
<string>Maybe useful for HiDPI screens.</string>
</property>
<property name="text">
<string notr="true">Qt::AA_EnableHighDpiScaling</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>