summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGHENADY <scroller@rambler.ru>2023-12-23 19:51:43 +0200
committerGhenady Kuznetsov <scroller@rambler.ru>2023-12-29 07:04:34 +0000
commit2e625c55b346a727b39b8c5cddc37839b49ba5a0 (patch)
tree5f2a98c79d9639f5cc62eebd41ae88dca1875fe2 /src
parent5bb71bb88e965fd43605af2eba80c5e7a3df64bf (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.cpp12
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;