Add auto-test for QT_USE_PHYSICAL_DPI
Test that setting QT_USE_PHYSICAL_DPI uses physical DPI instead of logical DPI. Change-Id: I7f89cf1af5e013454cc3d8ec3559f2719514fea3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
f0bf7667a9
commit
f9f9004b40
@ -56,6 +56,7 @@ private slots:
|
|||||||
void screenDpiAndDpr();
|
void screenDpiAndDpr();
|
||||||
void environment_QT_SCALE_FACTOR();
|
void environment_QT_SCALE_FACTOR();
|
||||||
void environment_QT_SCREEN_SCALE_FACTORS();
|
void environment_QT_SCREEN_SCALE_FACTORS();
|
||||||
|
void environment_QT_USE_PHYSICAL_DPI();
|
||||||
void screenAt_data();
|
void screenAt_data();
|
||||||
void screenAt();
|
void screenAt();
|
||||||
void screenGeometry_data();
|
void screenGeometry_data();
|
||||||
@ -187,6 +188,7 @@ void tst_QHighDpi::cleanup()
|
|||||||
// in order to avoid getting confusing follow-on errors on test failures.
|
// in order to avoid getting confusing follow-on errors on test failures.
|
||||||
qunsetenv("QT_SCALE_FACTOR");
|
qunsetenv("QT_SCALE_FACTOR");
|
||||||
qunsetenv("QT_SCREEN_SCALE_FACTORS");
|
qunsetenv("QT_SCREEN_SCALE_FACTORS");
|
||||||
|
qunsetenv("QT_USE_PHYSICAL_DPI");
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QHighDpi::qhighdpiscaling_data()
|
void tst_QHighDpi::qhighdpiscaling_data()
|
||||||
@ -273,6 +275,31 @@ void tst_QHighDpi::environment_QT_SCREEN_SCALE_FACTORS()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QHighDpi::environment_QT_USE_PHYSICAL_DPI()
|
||||||
|
{
|
||||||
|
qputenv("QT_USE_PHYSICAL_DPI", "1");
|
||||||
|
|
||||||
|
QList<qreal> dpiValues { 96, 144, 192 };
|
||||||
|
std::unique_ptr<QGuiApplication> app(createStandardOffscreenApp(dpiValues));
|
||||||
|
|
||||||
|
// Verify that the device pixel ratio is computed as physicalDpi / baseDpi.
|
||||||
|
// (which in practice uses physicalSize since this is what QPlatformScreen provides)
|
||||||
|
|
||||||
|
// The default QPlatformScreen::physicalSize() implementation (which QOffscreenScreen
|
||||||
|
// currerently uses) assumes a default DPI of 100 and calculates a fake physical size
|
||||||
|
// based on that value. Use DPI 100 here as well: if you have changed the default value
|
||||||
|
// in QPlatformScreen and get a test failure then update the value below.
|
||||||
|
const qreal platformScreenDefualtDpi = 100;
|
||||||
|
qreal expextedDpr = (platformScreenDefualtDpi / qreal(standardBaseDpi));
|
||||||
|
|
||||||
|
for (QScreen *screen : app->screens()) {
|
||||||
|
QCOMPARE(screen->devicePixelRatio(), expextedDpr);
|
||||||
|
QCOMPARE(screen->logicalDotsPerInch(), 96);
|
||||||
|
QWindow window(screen);
|
||||||
|
QCOMPARE(window.devicePixelRatio(), expextedDpr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QHighDpi::minimumDpr()
|
void tst_QHighDpi::minimumDpr()
|
||||||
{
|
{
|
||||||
QList<qreal> dpiValues { 40, 60, 95 };
|
QList<qreal> dpiValues { 40, 60, 95 };
|
||||||
|
Loading…
Reference in New Issue
Block a user