diff --git a/src/libs/utils/stylehelper.cpp b/src/libs/utils/stylehelper.cpp index c354e9ea174..ffb7efc417c 100644 --- a/src/libs/utils/stylehelper.cpp +++ b/src/libs/utils/stylehelper.cpp @@ -1002,6 +1002,14 @@ QFont StyleHelper::uiFont(UiElement element) return font; } +int StyleHelper::uiFontLineHeight(UiElement element) +{ + const UiFontMetrics &metrics = uiFontMetrics(element); + const qreal lineHeightToPixelSizeRatio = qreal(metrics.lineHeight) / metrics.pixelSize; + const QFontInfo fontInfo(uiFont(element)); + return qCeil(fontInfo.pixelSize() * lineHeightToPixelSizeRatio); +} + QString StyleHelper::fontToCssProperties(const QFont &font) { const QString fontSize = font.pixelSize() != -1 ? QString::number(font.pixelSize()) + "px" diff --git a/src/libs/utils/stylehelper.h b/src/libs/utils/stylehelper.h index c05e50cf01a..4b986c68313 100644 --- a/src/libs/utils/stylehelper.h +++ b/src/libs/utils/stylehelper.h @@ -114,6 +114,7 @@ QTCREATOR_UTILS_EXPORT QColor toolBarDropShadowColor(); QTCREATOR_UTILS_EXPORT QColor notTooBrightHighlightColor(); QTCREATOR_UTILS_EXPORT QFont uiFont(UiElement element); +QTCREATOR_UTILS_EXPORT int uiFontLineHeight(UiElement element); QTCREATOR_UTILS_EXPORT QString fontToCssProperties(const QFont &font); // Sets the base color and makes sure all top level widgets are updated diff --git a/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp b/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp index df088b08bf8..786a78676ff 100644 --- a/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp +++ b/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp @@ -43,8 +43,9 @@ int main(int argc, char *argv[]) sampleLabel->setFont(font); sampleLabel->setSizePolicy(uiElementLabel->sizePolicy()); QFontInfo fontInfo(font); - const QString pixelMetrics = QString::fromLatin1("Pixel size: %1") - .arg(fontInfo.pixelSize()); + const QString pixelMetrics = QString::fromLatin1("Pixel size: %1, line height: %2") + .arg(fontInfo.pixelSize()) + .arg(StyleHelper::uiFontLineHeight(uiElement.uiElement)); auto *metricsLabel = new QLabel(pixelMetrics); fontLabels.addItems({uiElementLabel, sampleLabel, st, font.toString(), metricsLabel, br}); }