diff options
author | Nodir Temirkhodjaev <[email protected]> | 2024-12-17 15:33:50 +0500 |
---|---|---|
committer | Nodir Temirkhodjaev <[email protected]> | 2024-12-19 00:36:46 +0500 |
commit | dc57a3137d440e1616f595fc244978f7a3a2d4d5 (patch) | |
tree | dcbd7b0c32661f08e35e4894003685c8c3291248 | |
parent | f4e197d9208eaebfedbe5c6261da6c4616152157 (diff) |
QFusionStyle: Use QFontMetricsF instead of QFontMetrics
- CT_MenuItem: Use qCeil()
- CE_MenuItem: Add 0.5 to width for elidedText(), because of qRound() in the QFontMetrics::horizontalAdvance()
Fixes: QTBUG-132102
Change-Id: Iaced11905357abb496d4ad3c20be0babb17cf121
Reviewed-by: Christian Ehrlicher <[email protected]>
-rw-r--r-- | src/widgets/styles/qfusionstyle.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 9fec0fa435a..558e4d98c57 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -1553,9 +1553,9 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio font.setBold(true); p->setFont(font); - const QFontMetrics fontMetrics(font); + const QFontMetricsF fontMetrics(font); const QString textToDraw = fontMetrics.elidedText(s.left(tabIndex).toString(), - Qt::ElideMiddle, vTextRect.width(), + Qt::ElideMiddle, vTextRect.width() + 0.5f, text_flags); if (dis && !act && proxy()->styleHint(SH_EtchDisabledText, option, widget)) { p->setPen(menuitem->palette.light().color()); @@ -2957,11 +2957,11 @@ QSize QFusionStyle::sizeFromContents(ContentsType type, const QStyleOption *opti else if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu) w += 2 * QStyleHelper::dpiScaled(QFusionStylePrivate::menuArrowHMargin, option); else if (menuItem->menuItemType == QStyleOptionMenuItem::DefaultItem) { - const QFontMetrics fm(menuItem->font); + const QFontMetricsF fm(menuItem->font); QFont fontBold = menuItem->font; fontBold.setBold(true); - const QFontMetrics fmBold(fontBold); - w += fmBold.horizontalAdvance(menuItem->text) - fm.horizontalAdvance(menuItem->text); + const QFontMetricsF fmBold(fontBold); + w += qCeil(fmBold.horizontalAdvance(menuItem->text) - fm.horizontalAdvance(menuItem->text)); } const qreal dpi = QStyleHelper::dpi(option); // Windows always shows a check column |