mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-19 02:10:28 +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/
|
.vs/
|
||||||
*.qm
|
*.qm
|
||||||
./.vscode
|
./.vscode
|
||||||
|
CMakeSettings.json
|
||||||
|
|
||||||
SourceTrail/
|
SourceTrail/
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
4956
|
4957
|
@ -14,8 +14,6 @@ namespace Qv2ray
|
|||||||
bool debugLog;
|
bool debugLog;
|
||||||
/// Enable Network toolbar plugin.
|
/// Enable Network toolbar plugin.
|
||||||
bool enableToolbarPlguin;
|
bool enableToolbarPlguin;
|
||||||
/// Force Enable HiDPI support.
|
|
||||||
bool forceHiDPI;
|
|
||||||
/// Disable Qt scale factors support.
|
/// Disable Qt scale factors support.
|
||||||
bool noScaleFactors;
|
bool noScaleFactors;
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,6 @@ namespace Qv2ray::common
|
|||||||
runAsRootOption("I-just-wanna-run-with-root", tr("Explicitly run Qv2ray as root.")), //
|
runAsRootOption("I-just-wanna-run-with-root", tr("Explicitly run Qv2ray as root.")), //
|
||||||
debugOption("debug", tr("Enable Debug Output")), //
|
debugOption("debug", tr("Enable Debug Output")), //
|
||||||
noScaleFactorOption("noScaleFactor", tr("Disable manually set QT_SCALE_FACTOR")), //
|
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")), //
|
withToolbarOption("withToolbarPlugin", tr("Enable Qv2ray network toolbar plugin")), //
|
||||||
//
|
//
|
||||||
helpOption("FAKE"), versionOption("FAKE")
|
helpOption("FAKE"), versionOption("FAKE")
|
||||||
@ -20,7 +19,6 @@ namespace Qv2ray::common
|
|||||||
parser.addOption(noAPIOption);
|
parser.addOption(noAPIOption);
|
||||||
parser.addOption(runAsRootOption);
|
parser.addOption(runAsRootOption);
|
||||||
parser.addOption(debugOption);
|
parser.addOption(debugOption);
|
||||||
parser.addOption(forceHiDpiOption);
|
|
||||||
parser.addOption(noScaleFactorOption);
|
parser.addOption(noScaleFactorOption);
|
||||||
parser.addOption(withToolbarOption);
|
parser.addOption(withToolbarOption);
|
||||||
helpOption = parser.addHelpOption();
|
helpOption = parser.addHelpOption();
|
||||||
@ -59,12 +57,6 @@ namespace Qv2ray::common
|
|||||||
StartupOption.debugLog = true;
|
StartupOption.debugLog = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parser.isSet(forceHiDpiOption))
|
|
||||||
{
|
|
||||||
DEBUG(MODULE_INIT, "forceHiDpiOption is set.")
|
|
||||||
StartupOption.forceHiDPI = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parser.isSet(noScaleFactorOption))
|
if (parser.isSet(noScaleFactorOption))
|
||||||
{
|
{
|
||||||
DEBUG(MODULE_INIT, "noScaleFactorOption is set.")
|
DEBUG(MODULE_INIT, "noScaleFactorOption is set.")
|
||||||
|
@ -28,7 +28,6 @@ namespace Qv2ray::common
|
|||||||
QCommandLineOption runAsRootOption;
|
QCommandLineOption runAsRootOption;
|
||||||
QCommandLineOption debugOption;
|
QCommandLineOption debugOption;
|
||||||
QCommandLineOption noScaleFactorOption;
|
QCommandLineOption noScaleFactorOption;
|
||||||
QCommandLineOption forceHiDpiOption;
|
|
||||||
QCommandLineOption withToolbarOption;
|
QCommandLineOption withToolbarOption;
|
||||||
QCommandLineOption helpOption;
|
QCommandLineOption helpOption;
|
||||||
QCommandLineOption versionOption;
|
QCommandLineOption versionOption;
|
||||||
|
@ -239,10 +239,14 @@ namespace Qv2ray::common
|
|||||||
QGraphicsBlurEffect pBlur;
|
QGraphicsBlurEffect pBlur;
|
||||||
//
|
//
|
||||||
view.setScene(&scene);
|
view.setScene(&scene);
|
||||||
|
view.resize(pixmap.size() / QWidget().devicePixelRatio());
|
||||||
|
view.setSceneRect(pixmap.rect());
|
||||||
scene.setSceneRect(pixmap.rect());
|
scene.setSceneRect(pixmap.rect());
|
||||||
pBlur.setBlurRadius(rad);
|
pBlur.setBlurRadius(rad);
|
||||||
QGraphicsPixmapItem *p = view.scene()->addPixmap(pixmap);
|
QGraphicsPixmapItem *p = view.scene()->addPixmap(pixmap);
|
||||||
p->setGraphicsEffect(&pBlur);
|
p->setGraphicsEffect(&pBlur);
|
||||||
|
view.setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
|
||||||
|
view.setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
|
||||||
return view.grab();
|
return view.grab();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,9 +259,13 @@ namespace Qv2ray::common
|
|||||||
pColor.setStrength(factor);
|
pColor.setStrength(factor);
|
||||||
//
|
//
|
||||||
view.setScene(&scene);
|
view.setScene(&scene);
|
||||||
|
view.resize(pixmap.size() / QWidget().devicePixelRatio());
|
||||||
|
view.setSceneRect(pixmap.rect());
|
||||||
scene.setSceneRect(pixmap.rect());
|
scene.setSceneRect(pixmap.rect());
|
||||||
QGraphicsPixmapItem *p = view.scene()->addPixmap(pixmap);
|
QGraphicsPixmapItem *p = view.scene()->addPixmap(pixmap);
|
||||||
p->setGraphicsEffect(&pColor);
|
p->setGraphicsEffect(&pColor);
|
||||||
|
view.setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
|
||||||
|
view.setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
|
||||||
return view.grab();
|
return view.grab();
|
||||||
}
|
}
|
||||||
} // namespace Qv2ray::common
|
} // 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::setApplicationName("qv2ray_debug");
|
||||||
SingleApplication::setApplicationDisplayName("Qv2ray - " + QObject::tr("Debug version"));
|
SingleApplication::setApplicationDisplayName("Qv2ray - " + QObject::tr("Debug version"));
|
||||||
#endif
|
#endif
|
||||||
if (!(qEnvironmentVariableIsSet("QT_DEVICE_PIXEL_RATIO") || qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR") || //
|
if (StartupOption.noScaleFactors)
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
LOG(MODULE_INIT, "Force set QT_SCALE_FACTOR to 0.")
|
LOG(MODULE_INIT, "Force set QT_SCALE_FACTOR to 0.")
|
||||||
LOG(MODULE_UI, "Original QT_SCALE_FACTOR was: " + qEnvironmentVariable("QT_SCALE_FACTOR"))
|
LOG(MODULE_UI, "Original QT_SCALE_FACTOR was: " + qEnvironmentVariable("QT_SCALE_FACTOR"))
|
||||||
qputenv("QT_SCALE_FACTOR", "1");
|
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 _qApp(argc, argv, false,
|
||||||
SingleApplication::User | SingleApplication::ExcludeAppPath | SingleApplication::ExcludeAppVersion);
|
SingleApplication::User | SingleApplication::ExcludeAppPath | SingleApplication::ExcludeAppVersion);
|
||||||
_qApp.setQuitOnLastWindowClosed(false);
|
_qApp.setQuitOnLastWindowClosed(false);
|
||||||
@ -319,7 +317,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (Qv2rayTranslator->InstallTranslation(confObject.uiConfig.language))
|
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
|
else
|
||||||
{
|
{
|
||||||
|
@ -84,7 +84,7 @@ void ConnectionInfoWidget::ShowDetails(const tuple<GroupId, ConnectionId> &_iden
|
|||||||
//
|
//
|
||||||
QZXingEncoderConfig conf;
|
QZXingEncoderConfig conf;
|
||||||
conf.border = true;
|
conf.border = true;
|
||||||
conf.imageSize = QSize(400, 400);
|
conf.imageSize = qrLabel->size() * devicePixelRatio();
|
||||||
conf.errorCorrectionLevel = QZXing::EncodeErrorCorrectionLevel_M;
|
conf.errorCorrectionLevel = QZXing::EncodeErrorCorrectionLevel_M;
|
||||||
QZXing qzx;
|
QZXing qzx;
|
||||||
qrPixmap = QPixmap::fromImage(qzx.encodeData(shareLink, conf));
|
qrPixmap = QPixmap::fromImage(qzx.encodeData(shareLink, conf));
|
||||||
|
Loading…
Reference in New Issue
Block a user