summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-03-18 16:38:12 +0100
committerPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-04-14 12:58:24 +0200
commit04e4feae6c2fc0074839c490c81977ade20011c9 (patch)
treee97fcff9ff8ab7d4a88aeb4a362a20cafd890a5a /src
parent91fb8061875db830d26f95acef048e36fb44cd6a (diff)
Fix logicalDotsPerInch when using devicePixelRatio
Qt does not support having different fontMetrics for different screens Also add environment variable for overriding logicalDpi Change-Id: I0baf73026d97fec590597ee304ad9fa119d7a328 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index ffd4dedee8..baa4eb06fd 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -311,19 +311,16 @@ QImage::Format QXcbScreen::format() const
QDpi QXcbScreen::logicalDpi() const
{
- int dpr = int(devicePixelRatio());
-
- if (m_forcedDpi > 0)
- return QDpi(m_forcedDpi/dpr, m_forcedDpi/dpr);
+ static const int overrideDpi = qEnvironmentVariableIntValue("QT_FONT_DPI");
+ if (overrideDpi)
+ return QDpi(overrideDpi, overrideDpi);
- static const bool auto_dpr = qgetenv("QT_DEVICE_PIXEL_RATIO").toLower() == "auto";
- if (auto_dpr) {
- return QDpi(Q_MM_PER_INCH * m_geometry.width() / m_sizeMillimeters.width(),
- Q_MM_PER_INCH * m_geometry.height() / m_sizeMillimeters.height());
- } else {
- return QDpi(Q_MM_PER_INCH * m_virtualSize.width() / m_virtualSizeMillimeters.width() / dpr,
- Q_MM_PER_INCH * m_virtualSize.height() / m_virtualSizeMillimeters.height() / dpr);
+ if (m_forcedDpi > 0) {
+ int primaryDpr = int(connection()->screens().at(0)->devicePixelRatio());
+ return QDpi(m_forcedDpi/primaryDpr, m_forcedDpi/primaryDpr);
}
+ return QDpi(Q_MM_PER_INCH * m_virtualSize.width() / m_virtualSizeMillimeters.width(),
+ Q_MM_PER_INCH * m_virtualSize.height() / m_virtualSizeMillimeters.height());
}