Fusion style: QGroupBox title vertical alignment
Take vertical alignment into account in QFusionStyle::subControlRect(). Fixes: QTBUG-67708 Change-Id: I9da23a4689565c8dba9fed9ef75d3c640ce77e3f Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> (cherry picked from commit 2e625c55b346a727b39b8c5cddc37839b49ba5a0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8b567e90be95ae21d3814653742e68099dc20349)
This commit is contained in:
parent
c745ed94a4
commit
4f43990f7d
@ -3392,17 +3392,21 @@ QRect QFusionStyle::subControlRect(ComplexControl control, const QStyleOptionCom
|
||||
#endif // QT_CONFIG(spinbox)
|
||||
case CC_GroupBox:
|
||||
if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(option)) {
|
||||
const int groupBoxTextAlignment = groupBox->textAlignment;
|
||||
const int fontMetricsHeight = groupBox->text.isEmpty() ? 0 : groupBox->fontMetrics.height();
|
||||
|
||||
rect = option->rect;
|
||||
if (subControl == SC_GroupBoxFrame)
|
||||
return rect.adjusted(0, 0, 0, 0);
|
||||
if ((groupBoxTextAlignment & Qt::AlignVertical_Mask) == Qt::AlignVCenter)
|
||||
return rect.adjusted(0, -(fontMetricsHeight + 4) / 2, 0, 0);
|
||||
else
|
||||
return rect;
|
||||
else if (subControl == SC_GroupBoxContents) {
|
||||
QRect frameRect = option->rect.adjusted(0, 0, 0, -groupBoxBottomMargin);
|
||||
int margin = 3;
|
||||
int leftMarginExtension = 0;
|
||||
const int exclusiveIndicatorHeight = option->subControls.testFlag(SC_GroupBoxCheckBox) ?
|
||||
pixelMetric(PM_ExclusiveIndicatorHeight) : 0;
|
||||
const int fontMetricsHeight = groupBox->text.isEmpty() ? 0 :
|
||||
groupBox->fontMetrics.height();
|
||||
const int topMargin = qMax(exclusiveIndicatorHeight, fontMetricsHeight) +
|
||||
groupBoxTopMargin;
|
||||
return frameRect.adjusted(leftMarginExtension + margin, margin + topMargin, -margin, -margin - groupBoxBottomMargin);
|
||||
@ -3418,7 +3422,7 @@ QRect QFusionStyle::subControlRect(ComplexControl control, const QStyleOptionCom
|
||||
rect = QRect();
|
||||
|
||||
if (option->rect.width() > width) {
|
||||
switch (groupBox->textAlignment & Qt::AlignHorizontal_Mask) {
|
||||
switch (groupBoxTextAlignment & Qt::AlignHorizontal_Mask) {
|
||||
case Qt::AlignHCenter:
|
||||
rect.moveLeft((option->rect.width() - width) / 2);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user