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>bb10
parent
2314286883
commit
f3e405cb3b
|
|
@ -310,19 +310,16 @@ QImage::Format QXcbScreen::format() const
|
|||
|
||||
QDpi QXcbScreen::logicalDpi() const
|
||||
{
|
||||
int dpr = int(devicePixelRatio());
|
||||
static const int overrideDpi = qEnvironmentVariableIntValue("QT_FONT_DPI");
|
||||
if (overrideDpi)
|
||||
return QDpi(overrideDpi, overrideDpi);
|
||||
|
||||
if (m_forcedDpi > 0)
|
||||
return QDpi(m_forcedDpi/dpr, m_forcedDpi/dpr);
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue