Fusion style: Observe text alignment of QGroupBox.
Take alignment into account in QFusionStyle::subControlRect(). Task-number: QTBUG-49068 Change-Id: Ia8f2d06c46b24761bff537247bbadd3323e41fa9 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>bb10
parent
9442b3a1c3
commit
eb786d600c
|
|
@ -3418,12 +3418,28 @@ QRect QFusionStyle::subControlRect(ComplexControl control, const QStyleOptionCom
|
|||
QSize textSize = option->fontMetrics.boundingRect(groupBox->text).size() + QSize(2, 2);
|
||||
int indicatorWidth = proxy()->pixelMetric(PM_IndicatorWidth, option, widget);
|
||||
int indicatorHeight = proxy()->pixelMetric(PM_IndicatorHeight, option, widget);
|
||||
|
||||
const int width = textSize.width()
|
||||
+ (option->subControls & QStyle::SC_GroupBoxCheckBox ? indicatorWidth + 5 : 0);
|
||||
|
||||
rect = QRect();
|
||||
|
||||
if (option->rect.width() > width) {
|
||||
switch (groupBox->textAlignment & Qt::AlignHorizontal_Mask) {
|
||||
case Qt::AlignHCenter:
|
||||
rect.moveLeft((option->rect.width() - width) / 2);
|
||||
break;
|
||||
case Qt::AlignRight:
|
||||
rect.moveLeft(option->rect.width() - width);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (subControl == SC_GroupBoxCheckBox) {
|
||||
rect.setWidth(indicatorWidth);
|
||||
rect.setHeight(indicatorHeight);
|
||||
rect.moveTop(textSize.height() > indicatorHeight ? (textSize.height() - indicatorHeight) / 2 : 0);
|
||||
rect.moveLeft(1);
|
||||
rect.translate(1, 0);
|
||||
} else if (subControl == SC_GroupBoxLabel) {
|
||||
rect.setSize(textSize);
|
||||
rect.moveTop(1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue