diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-11-12 13:43:08 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-11-12 13:43:17 +0100 |
commit | d13b22e6bc43a0196c123164b2927b1b45ab3dcc (patch) | |
tree | 8a85de65ff9a59788d428de9e3d92d04b9c9f9b2 /src/app | |
parent | 2afae6f2c6fbbbfdbb2da51646de6aa613a71d38 (diff) | |
parent | 0bcddcd0140f9daf54ba0b74b4afc3736c225fe0 (diff) | |
download | qt-creator-d13b22e6bc43a0196c123164b2927b1b45ab3dcc.tar.gz |
Merge remote-tracking branch 'origin/3.6'
Conflicts:
src/plugins/coreplugin/editormanager/editormanager.cpp
Change-Id: Ibdf433b54e36e58182b7094f78d47ed3e8c81684
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/main.cpp | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/src/app/main.cpp b/src/app/main.cpp index 1cfccf42cf..ef7d998218 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -159,6 +159,28 @@ static inline int askMsgSendFailed() QMessageBox::Retry); } +static const char *setHighDpiEnvironmentVariable() +{ + const char* envVarName = 0; + static const char ENV_VAR_QT_DEVICE_PIXEL_RATIO[] = "QT_DEVICE_PIXEL_RATIO"; +#if (QT_VERSION < QT_VERSION_CHECK(5, 6, 0)) + if (Utils::HostOsInfo().isWindowsHost() + && !qEnvironmentVariableIsSet(ENV_VAR_QT_DEVICE_PIXEL_RATIO)) { + envVarName = ENV_VAR_QT_DEVICE_PIXEL_RATIO; + qputenv(envVarName, "auto"); + } +#else + if (Utils::HostOsInfo().isWindowsHost() + && !qEnvironmentVariableIsSet(ENV_VAR_QT_DEVICE_PIXEL_RATIO) // legacy in 5.6, but still functional + && !qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR") + && !qEnvironmentVariableIsSet("QT_SCALE_FACTOR") + && !qEnvironmentVariableIsSet("QT_SCREEN_SCALE_FACTORS")) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + } +#endif // < Qt 5.6 + return envVarName; +} + // taken from utils/fileutils.cpp. We can not use utils here since that depends app_version.h. static bool copyRecursively(const QString &srcFilePath, const QString &tgtFilePath) @@ -280,12 +302,7 @@ static const char *SHARE_PATH = int main(int argc, char **argv) { -#if (QT_VERSION < QT_VERSION_CHECK(5, 6, 0)) - if (Utils::HostOsInfo().isWindowsHost() - && !qEnvironmentVariableIsSet("QT_DEVICE_PIXEL_RATIO")) { - qputenv("QT_DEVICE_PIXEL_RATIO", "auto"); - } -#endif // < Qt 5.6 + const char *highDpiEnvironmentVariable = setHighDpiEnvironmentVariable(); QLoggingCategory::setFilterRules(QLatin1String("qtc.*.debug=false")); #ifdef Q_OS_MAC @@ -299,6 +316,9 @@ int main(int argc, char **argv) SharedTools::QtSingleApplication app((QLatin1String(appNameC)), argc, argv); + if (highDpiEnvironmentVariable) + qunsetenv(highDpiEnvironmentVariable); + if (Utils::HostOsInfo().isWindowsHost() && !qFuzzyCompare(qApp->devicePixelRatio(), 1.0) && QApplication::style()->objectName().startsWith( |