diff options
author | Gabriel de Dietrich <gabriel.dedietrich@qt.io> | 2017-05-18 14:58:57 -0700 |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dedietrich@qt.io> | 2017-07-10 17:38:35 +0000 |
commit | aaf227e29913ed9ce7497522546b4e7bc48dcf6d (patch) | |
tree | aa2bb96ebfc1f1c3997697b74cd682050493d0c5 | |
parent | b81573bbd83b3795df6d7cfc8af78121f9bc68ca (diff) |
QMacStyle: Simplify rendering SC_GroupBoxLabel
Removes the last occurrence of HITHemeDrawTextBox.
Change-Id: I13804a16672c692a4405d8b2f9d5fb6a132a6b7b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
-rw-r--r-- | src/plugins/styles/mac/qmacstyle_mac.mm | 39 |
1 files 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<CGFloat>(textColor.redF()), static_cast<CGFloat>(textColor.greenF()), - static_cast<CGFloat>(textColor.blueF()), static_cast<CGFloat>(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; |