Deprecate QT_AUTO_SCREEN_SCALE_FACTOR
Replace by QT_ENABLE_HIGHDPI_SCALING. QT_AUTO_SCREEN_SCALE_FACTOR has the usability problem that it mixes enabling the high-DPI scaling mode with the method of getting screen scale factors (“auto”). Due to this, it ends up with a slightly strange name. QT_ENABLE_HIGHDPI_SCALING matches the C++ option (Qt::AA_EnableHighDPiScaling), and leaves the scale factor acquisition method unspecified, possibly to be set by some other means (like QT_SCREEN_SCALE_FACTORS). Done-with: Friedemann Kleint <Friedemann.Kleint@qt.io> Task-number: QTBUG-53022 Change-Id: I30033d91175a00db7837efc9c48c33396f5f0449 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This commit is contained in:
parent
35da4eeba2
commit
1de8b01d2b
@ -56,8 +56,10 @@ Q_LOGGING_CATEGORY(lcScaling, "qt.scaling");
|
|||||||
|
|
||||||
#ifndef QT_NO_HIGHDPISCALING
|
#ifndef QT_NO_HIGHDPISCALING
|
||||||
static const char legacyDevicePixelEnvVar[] = "QT_DEVICE_PIXEL_RATIO";
|
static const char legacyDevicePixelEnvVar[] = "QT_DEVICE_PIXEL_RATIO";
|
||||||
|
static const char legacyAutoScreenEnvVar[] = "QT_AUTO_SCREEN_SCALE_FACTOR";
|
||||||
|
|
||||||
|
static const char enableHighDpiScalingEnvVar[] = "QT_ENABLE_HIGHDPI_SCALING";
|
||||||
static const char scaleFactorEnvVar[] = "QT_SCALE_FACTOR";
|
static const char scaleFactorEnvVar[] = "QT_SCALE_FACTOR";
|
||||||
static const char autoScreenEnvVar[] = "QT_AUTO_SCREEN_SCALE_FACTOR";
|
|
||||||
static const char screenFactorsEnvVar[] = "QT_SCREEN_SCALE_FACTORS";
|
static const char screenFactorsEnvVar[] = "QT_SCREEN_SCALE_FACTORS";
|
||||||
static const char scaleFactorRoundingPolicyEnvVar[] = "QT_SCALE_FACTOR_ROUNDING_POLICY";
|
static const char scaleFactorRoundingPolicyEnvVar[] = "QT_SCALE_FACTOR_ROUNDING_POLICY";
|
||||||
static const char dpiAdjustmentPolicyEnvVar[] = "QT_DPI_ADJUSTMENT_POLICY";
|
static const char dpiAdjustmentPolicyEnvVar[] = "QT_DPI_ADJUSTMENT_POLICY";
|
||||||
@ -90,17 +92,24 @@ static inline qreal initialGlobalScaleFactor()
|
|||||||
result = f;
|
result = f;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// Check for deprecated environment variables.
|
||||||
if (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar)) {
|
if (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar)) {
|
||||||
qWarning("Warning: %s is deprecated. Instead use:\n"
|
qWarning("Warning: %s is deprecated. Instead use:\n"
|
||||||
" %s to enable platform plugin controlled per-screen factors.\n"
|
" %s to enable platform plugin controlled per-screen factors.\n"
|
||||||
" %s to set per-screen factors.\n"
|
" %s to set per-screen DPI.\n"
|
||||||
" %s to set the application global scale factor.",
|
" %s to set the application global scale factor.",
|
||||||
legacyDevicePixelEnvVar, autoScreenEnvVar, screenFactorsEnvVar, scaleFactorEnvVar);
|
legacyDevicePixelEnvVar, legacyAutoScreenEnvVar, screenFactorsEnvVar, scaleFactorEnvVar);
|
||||||
|
|
||||||
int dpr = qEnvironmentVariableIntValue(legacyDevicePixelEnvVar);
|
int dpr = qEnvironmentVariableIntValue(legacyDevicePixelEnvVar);
|
||||||
if (dpr > 0)
|
if (dpr > 0)
|
||||||
result = dpr;
|
result = dpr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (qEnvironmentVariableIsSet(legacyAutoScreenEnvVar)) {
|
||||||
|
qWarning("Warning: %s is deprecated. Instead use:\n"
|
||||||
|
" %s to enable platform plugin controlled per-screen factors.",
|
||||||
|
legacyAutoScreenEnvVar, enableHighDpiScalingEnvVar);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -258,16 +267,24 @@ static inline bool usePixelDensity()
|
|||||||
// Determine if we should set a scale factor based on the pixel density
|
// Determine if we should set a scale factor based on the pixel density
|
||||||
// reported by the platform plugin. There are several enablers and several
|
// reported by the platform plugin. There are several enablers and several
|
||||||
// disablers. A single disable may veto all other enablers.
|
// disablers. A single disable may veto all other enablers.
|
||||||
|
|
||||||
|
// First, check of there is an explicit disable.
|
||||||
if (QCoreApplication::testAttribute(Qt::AA_DisableHighDpiScaling))
|
if (QCoreApplication::testAttribute(Qt::AA_DisableHighDpiScaling))
|
||||||
return false;
|
return false;
|
||||||
bool screenEnvValueOk;
|
bool screenEnvValueOk;
|
||||||
const int screenEnvValue = qEnvironmentVariableIntValue(autoScreenEnvVar, &screenEnvValueOk);
|
const int screenEnvValue = qEnvironmentVariableIntValue(legacyAutoScreenEnvVar, &screenEnvValueOk);
|
||||||
if (screenEnvValueOk && screenEnvValue < 1)
|
if (screenEnvValueOk && screenEnvValue < 1)
|
||||||
return false;
|
return false;
|
||||||
|
bool enableEnvValueOk;
|
||||||
|
const int enableEnvValue = qEnvironmentVariableIntValue(enableHighDpiScalingEnvVar, &enableEnvValueOk);
|
||||||
|
if (enableEnvValueOk && enableEnvValue < 1)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Then return if there was an enable.
|
||||||
return QCoreApplication::testAttribute(Qt::AA_EnableHighDpiScaling)
|
return QCoreApplication::testAttribute(Qt::AA_EnableHighDpiScaling)
|
||||||
|| (screenEnvValueOk && screenEnvValue > 0)
|
|| (screenEnvValueOk && screenEnvValue > 0)
|
||||||
|| (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar) &&
|
|| (enableEnvValueOk && enableEnvValue > 0)
|
||||||
qgetenv(legacyDevicePixelEnvVar).compare("auto", Qt::CaseInsensitive) == 0);
|
|| (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar) && qgetenv(legacyDevicePixelEnvVar).toLower() == "auto");
|
||||||
}
|
}
|
||||||
|
|
||||||
qreal QHighDpiScaling::rawScaleFactor(const QPlatformScreen *screen)
|
qreal QHighDpiScaling::rawScaleFactor(const QPlatformScreen *screen)
|
||||||
|
Loading…
Reference in New Issue
Block a user