summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNodir Temirkhodjaev <[email protected]>2024-12-17 15:33:50 +0500
committerNodir Temirkhodjaev <[email protected]>2024-12-19 00:36:46 +0500
commitdc57a3137d440e1616f595fc244978f7a3a2d4d5 (patch)
treedcbd7b0c32661f08e35e4894003685c8c3291248
parentf4e197d9208eaebfedbe5c6261da6c4616152157 (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.cpp10
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