highdpi: avoid rounding policy warning

Calling setHighDpiScaleFactorRoundingPolicy() during
Qt startup warns:

  "setHighDpiScaleFactorRoundingPolicy must be called
   before creating the QGuiApplication instance"

The warning is intended for user code, and Qt internal
code need not heed it.

Set the highDpiScaleFactorRoundingPolicy private variable
directly instead.

Fixes: QTBUG-132430
Change-Id: I50285dc76209f4a96bcdf46e1861fc2dc17ca5c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Morten Sørvig 2025-03-14 12:21:19 +01:00 committed by Morten Johan Sørvig
parent 8c99134584
commit 7c69d09262

View File

@ -440,7 +440,8 @@ void QHighDpiScaling::initHighDpiScaling()
QByteArray policyText = envScaleFactorRoundingPolicy.value();
auto policyEnumValue = lookupScaleFactorRoundingPolicy(policyText);
if (policyEnumValue != Qt::HighDpiScaleFactorRoundingPolicy::Unset) {
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(policyEnumValue);
// set directly to avoid setHighDpiScaleFactorRoundingPolicy() warning
QGuiApplicationPrivate::highDpiScaleFactorRoundingPolicy = policyEnumValue;
} else {
auto values = joinEnumValues(std::begin(scaleFactorRoundingPolicyLookup),
std::end(scaleFactorRoundingPolicyLookup));