From b6ea1d9a96c04a556024f246bcd2dbbcb3db5530 Mon Sep 17 00:00:00 2001 From: Qv2ray-dev <59914293+Qv2ray-dev@users.noreply.github.com> Date: Sat, 21 Mar 2020 15:52:07 +0800 Subject: [PATCH] fix: fixed HiDPI blurred QrImage, added new command arg noScaleFactor --- .gitignore | 1 + makespec/BUILDVERSION | 2 +- src/base/models/QvStartupConfig.hpp | 2 -- src/common/CommandArgs.cpp | 8 -------- src/common/CommandArgs.hpp | 1 - src/common/QvHelpers.cpp | 8 ++++++++ src/main.cpp | 16 +++++++--------- src/ui/widgets/ConnectionInfoWidget.cpp | 2 +- 8 files changed, 18 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index cb6d3bd5..82708c26 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ .vs/ *.qm ./.vscode +CMakeSettings.json SourceTrail/ diff --git a/makespec/BUILDVERSION b/makespec/BUILDVERSION index b9fda0c2..69907aad 100644 --- a/makespec/BUILDVERSION +++ b/makespec/BUILDVERSION @@ -1 +1 @@ -4956 +4957 \ No newline at end of file diff --git a/src/base/models/QvStartupConfig.hpp b/src/base/models/QvStartupConfig.hpp index cb908816..258a1631 100644 --- a/src/base/models/QvStartupConfig.hpp +++ b/src/base/models/QvStartupConfig.hpp @@ -14,8 +14,6 @@ namespace Qv2ray bool debugLog; /// Enable Network toolbar plugin. bool enableToolbarPlguin; - /// Force Enable HiDPI support. - bool forceHiDPI; /// Disable Qt scale factors support. bool noScaleFactors; }; diff --git a/src/common/CommandArgs.cpp b/src/common/CommandArgs.cpp index 90e7ea47..2a2c8077 100644 --- a/src/common/CommandArgs.cpp +++ b/src/common/CommandArgs.cpp @@ -9,7 +9,6 @@ namespace Qv2ray::common runAsRootOption("I-just-wanna-run-with-root", tr("Explicitly run Qv2ray as root.")), // debugOption("debug", tr("Enable Debug Output")), // noScaleFactorOption("noScaleFactor", tr("Disable manually set QT_SCALE_FACTOR")), // - forceHiDpiOption("forceHiDPI", tr("Force enable HiDPI support for Qt")), // withToolbarOption("withToolbarPlugin", tr("Enable Qv2ray network toolbar plugin")), // // helpOption("FAKE"), versionOption("FAKE") @@ -20,7 +19,6 @@ namespace Qv2ray::common parser.addOption(noAPIOption); parser.addOption(runAsRootOption); parser.addOption(debugOption); - parser.addOption(forceHiDpiOption); parser.addOption(noScaleFactorOption); parser.addOption(withToolbarOption); helpOption = parser.addHelpOption(); @@ -59,12 +57,6 @@ namespace Qv2ray::common StartupOption.debugLog = true; } - if (parser.isSet(forceHiDpiOption)) - { - DEBUG(MODULE_INIT, "forceHiDpiOption is set.") - StartupOption.forceHiDPI = true; - } - if (parser.isSet(noScaleFactorOption)) { DEBUG(MODULE_INIT, "noScaleFactorOption is set.") diff --git a/src/common/CommandArgs.hpp b/src/common/CommandArgs.hpp index 05cd050c..61483122 100644 --- a/src/common/CommandArgs.hpp +++ b/src/common/CommandArgs.hpp @@ -28,7 +28,6 @@ namespace Qv2ray::common QCommandLineOption runAsRootOption; QCommandLineOption debugOption; QCommandLineOption noScaleFactorOption; - QCommandLineOption forceHiDpiOption; QCommandLineOption withToolbarOption; QCommandLineOption helpOption; QCommandLineOption versionOption; diff --git a/src/common/QvHelpers.cpp b/src/common/QvHelpers.cpp index 32913759..fbc5741b 100644 --- a/src/common/QvHelpers.cpp +++ b/src/common/QvHelpers.cpp @@ -239,10 +239,14 @@ namespace Qv2ray::common QGraphicsBlurEffect pBlur; // view.setScene(&scene); + view.resize(pixmap.size() / QWidget().devicePixelRatio()); + view.setSceneRect(pixmap.rect()); scene.setSceneRect(pixmap.rect()); pBlur.setBlurRadius(rad); QGraphicsPixmapItem *p = view.scene()->addPixmap(pixmap); p->setGraphicsEffect(&pBlur); + view.setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); + view.setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); return view.grab(); } @@ -255,9 +259,13 @@ namespace Qv2ray::common pColor.setStrength(factor); // view.setScene(&scene); + view.resize(pixmap.size() / QWidget().devicePixelRatio()); + view.setSceneRect(pixmap.rect()); scene.setSceneRect(pixmap.rect()); QGraphicsPixmapItem *p = view.scene()->addPixmap(pixmap); p->setGraphicsEffect(&pColor); + view.setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); + view.setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); return view.grab(); } } // namespace Qv2ray::common diff --git a/src/main.cpp b/src/main.cpp index 3193b4b0..c1d3c338 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -227,19 +227,17 @@ int main(int argc, char *argv[]) SingleApplication::setApplicationName("qv2ray_debug"); SingleApplication::setApplicationDisplayName("Qv2ray - " + QObject::tr("Debug version")); #endif - if (!(qEnvironmentVariableIsSet("QT_DEVICE_PIXEL_RATIO") || qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR") || // - qEnvironmentVariableIsSet("QT_SCALE_FACTOR") || !qEnvironmentVariableIsSet("QT_SCREEN_SCALE_FACTORS")) || // - StartupOption.forceHiDPI) - { - LOG(MODULE_INIT, "High DPI scaling is enabled.") - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - } - else if (StartupOption.noScaleFactors) + if (StartupOption.noScaleFactors) { LOG(MODULE_INIT, "Force set QT_SCALE_FACTOR to 0.") LOG(MODULE_UI, "Original QT_SCALE_FACTOR was: " + qEnvironmentVariable("QT_SCALE_FACTOR")) qputenv("QT_SCALE_FACTOR", "1"); } + else + { + LOG(MODULE_INIT, "High DPI scaling is enabled.") + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + } SingleApplication _qApp(argc, argv, false, SingleApplication::User | SingleApplication::ExcludeAppPath | SingleApplication::ExcludeAppVersion); _qApp.setQuitOnLastWindowClosed(false); @@ -319,7 +317,7 @@ int main(int argc, char *argv[]) if (Qv2rayTranslator->InstallTranslation(confObject.uiConfig.language)) { - LOG(MODULE_INIT, "Successfully installed a translator for " + confObject.uiConfig.language); + LOG(MODULE_INIT, "Successfully installed a translator for " + confObject.uiConfig.language) } else { diff --git a/src/ui/widgets/ConnectionInfoWidget.cpp b/src/ui/widgets/ConnectionInfoWidget.cpp index 6a94f813..8e5651d4 100644 --- a/src/ui/widgets/ConnectionInfoWidget.cpp +++ b/src/ui/widgets/ConnectionInfoWidget.cpp @@ -84,7 +84,7 @@ void ConnectionInfoWidget::ShowDetails(const tuple &_iden // QZXingEncoderConfig conf; conf.border = true; - conf.imageSize = QSize(400, 400); + conf.imageSize = qrLabel->size() * devicePixelRatio(); conf.errorCorrectionLevel = QZXing::EncodeErrorCorrectionLevel_M; QZXing qzx; qrPixmap = QPixmap::fromImage(qzx.encodeData(shareLink, conf));