diff options
| author | GHENADY <scroller@rambler.ru> | 2023-12-23 19:51:43 +0200 |
|---|---|---|
| committer | Ghenady Kuznetsov <scroller@rambler.ru> | 2023-12-29 07:04:34 +0000 |
| commit | 2e625c55b346a727b39b8c5cddc37839b49ba5a0 (patch) | |
| tree | 5f2a98c79d9639f5cc62eebd41ae88dca1875fe2 /src | |
| parent | 5bb71bb88e965fd43605af2eba80c5e7a3df64bf (diff) | |
Fusion style: QGroupBox title vertical alignment
Take vertical alignment into account in QFusionStyle::subControlRect().
Pick-to: 6.7 6.6
Fixes: QTBUG-67708
Change-Id: I9da23a4689565c8dba9fed9ef75d3c640ce77e3f
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Diffstat (limited to 'src')
| -rw-r--r-- | src/widgets/styles/qfusionstyle.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 54eaef8cfb3..d9b2821c48d 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -3295,17 +3295,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); @@ -3321,7 +3325,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; |
