diff --git a/qtbase/src/widgets/styles/qstylesheetstyle.cpp b/qtbase/src/widgets/styles/qstylesheetstyle.cpp index e9443ac..9d78c2b 100644 --- a/qtbase/src/widgets/styles/qstylesheetstyle.cpp +++ b/qtbase/src/widgets/styles/qstylesheetstyle.cpp @@ -5393,8 +5393,14 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op } if ((pe == PseudoElement_Item) && (subRule.hasBox() || subRule.hasBorder() || subRule.hasFont)) { QSize sz(csz); - if (mi->text.contains(u'\t')) + if (subRule.hasFont) { + QFontMetrics fm(subRule.font.resolve(mi->font)); + const QRect r = fm.boundingRect(QRect(), Qt::TextSingleLine | Qt::TextShowMnemonic, mi->text); + sz = sz.expandedTo(r.size()); + } + if (mi->text.contains(u'\t')) { sz.rwidth() += 12; //as in QCommonStyle + } if (!mi->icon.isNull()) { const int pmSmall = pixelMetric(PM_SmallIconSize); const QSize pmSize = mi->icon.actualSize(QSize(pmSmall, pmSmall)); @@ -5406,11 +5412,6 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op } else { sz.rwidth() += mi->maxIconWidth; } - if (subRule.hasFont) { - QFontMetrics fm(subRule.font.resolve(mi->font)); - const QRect r = fm.boundingRect(QRect(), Qt::TextSingleLine | Qt::TextShowMnemonic, mi->text); - sz = sz.expandedTo(r.size()); - } return subRule.boxSize(subRule.adjustSize(sz)); } }