mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-18 18:00:25 +08:00
fix: fixed HiDPI blurred QrImage, added new command arg noScaleFactor
This commit is contained in:
parent
ae0776cae9
commit
b6ea1d9a96
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
||||
.vs/
|
||||
*.qm
|
||||
./.vscode
|
||||
CMakeSettings.json
|
||||
|
||||
SourceTrail/
|
||||
|
||||
|
@ -1 +1 @@
|
||||
4956
|
||||
4957
|
@ -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;
|
||||
};
|
||||
|
@ -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.")
|
||||
|
@ -28,7 +28,6 @@ namespace Qv2ray::common
|
||||
QCommandLineOption runAsRootOption;
|
||||
QCommandLineOption debugOption;
|
||||
QCommandLineOption noScaleFactorOption;
|
||||
QCommandLineOption forceHiDpiOption;
|
||||
QCommandLineOption withToolbarOption;
|
||||
QCommandLineOption helpOption;
|
||||
QCommandLineOption versionOption;
|
||||
|
@ -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
|
||||
|
16
src/main.cpp
16
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
|
||||
{
|
||||
|
@ -84,7 +84,7 @@ void ConnectionInfoWidget::ShowDetails(const tuple<GroupId, ConnectionId> &_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));
|
||||
|
Loading…
Reference in New Issue
Block a user