From aaf227e29913ed9ce7497522546b4e7bc48dcf6d Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Thu, 18 May 2017 14:58:57 -0700 Subject: [PATCH] QMacStyle: Simplify rendering SC_GroupBoxLabel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removes the last occurrence of HITHemeDrawTextBox. Change-Id: I13804a16672c692a4405d8b2f9d5fb6a132a6b7b Reviewed-by: Tor Arne Vestbø --- src/plugins/styles/mac/qmacstyle_mac.mm | 39 ++++++++----------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm index 77ee42de57..95b9aeca2c 100644 --- a/src/plugins/styles/mac/qmacstyle_mac.mm +++ b/src/plugins/styles/mac/qmacstyle_mac.mm @@ -5701,36 +5701,21 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex else groupBox.subControls = groupBox.subControls & ~SC_GroupBoxFrame; // We don't like frames and ugly lines - bool didModifySubControls = false; - if ((!widget || !widget->testAttribute(Qt::WA_SetFont)) - && QApplication::desktopSettingsAware()) { + const bool didSetFont = widget && widget->testAttribute(Qt::WA_SetFont); + const bool didModifySubControls = !didSetFont && QApplication::desktopSettingsAware(); + if (didModifySubControls) groupBox.subControls = groupBox.subControls & ~SC_GroupBoxLabel; - didModifySubControls = true; - } QCommonStyle::drawComplexControl(cc, &groupBox, p, widget); if (didModifySubControls) { - p->save(); - CGContextSetShouldAntialias(cg, true); - CGContextSetShouldSmoothFonts(cg, true); - HIThemeTextInfo tti; - tti.version = qt_mac_hitheme_version; - tti.state = tds; - QColor textColor = groupBox.palette.windowText().color(); - CGFloat colorComp[] = { static_cast(textColor.redF()), static_cast(textColor.greenF()), - static_cast(textColor.blueF()), static_cast(textColor.alphaF()) }; - CGContextSetFillColorSpace(cg, qt_mac_genericColorSpace()); - CGContextSetFillColor(cg, colorComp); - tti.fontID = flat ? kThemeSystemFont : kThemeSmallSystemFont; - tti.horizontalFlushness = kHIThemeTextHorizontalFlushCenter; - tti.verticalFlushness = kHIThemeTextVerticalFlushCenter; - tti.options = kHIThemeTextBoxOptionNone; - tti.truncationPosition = kHIThemeTextTruncationNone; - tti.truncationMaxLines = 1 + groupBox.text.count(QLatin1Char('\n')); - QCFString groupText = qt_mac_removeMnemonics(groupBox.text); - QRect r = proxy()->subControlRect(CC_GroupBox, &groupBox, SC_GroupBoxLabel, widget); - CGRect bounds = r.toCGRect(); - HIThemeDrawTextBox(groupText, &bounds, &tti, cg, kHIThemeOrientationNormal); - p->restore(); + const QRect rect = proxy()->subControlRect(CC_GroupBox, &groupBox, SC_GroupBoxLabel, widget); + const bool rtl = groupBox.direction == Qt::RightToLeft; + const int alignment = Qt::TextHideMnemonic | (rtl ? Qt::AlignRight : Qt::AlignLeft); + const QFont savedFont = p->font(); + if (!flat) + p->setFont(*QGuiApplicationPrivate::platformTheme()->font(QPlatformTheme::SmallFont)); + proxy()->drawItemText(p, rect, alignment, groupBox.palette, groupBox.state & State_Enabled, groupBox.text, QPalette::WindowText); + if (!flat) + p->setFont(savedFont); } } break;