14StyleItemGeometry QQuickStyleItemGroupBox::calculateGeometry()
16 QStyleOptionGroupBox styleOption;
17 initStyleOption(styleOption);
19 StyleItemGeometry geometry;
20 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_GroupBox, &styleOption, QSize(0, 0));
22 if (!control<QQuickGroupBox>()->title().isEmpty()) {
25 styleOption.text = QStringLiteral(
" ");
26 styleOption.subControls |= QStyle::SC_GroupBoxLabel;
29 geometry.implicitSize = style()->sizeFromContents(QStyle::CT_GroupBox, &styleOption, contentSize());
30 styleOption.rect.setSize(geometry.implicitSize);
31 geometry.contentRect = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxContents);
32 geometry.layoutRect = style()->subElementRect(QStyle::SE_GroupBoxLayoutItem, &styleOption);
33 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_GroupBox, &styleOption, geometry.minimumSize);
35 const QQuickStyleMargins oldGroupBoxPadding = m_groupBoxPadding;
36 const QRect frame = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxFrame);
37 m_groupBoxPadding = QQuickStyleMargins(QRect(QPoint(), geometry.implicitSize), frame);
38 if (m_groupBoxPadding != oldGroupBoxPadding)
39 emit groupBoxPaddingChanged();
41 const QPointF oldLabelPos = m_labelPos;
42 m_labelPos = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxLabel).topLeft();
43 if (m_labelPos != oldLabelPos)
44 emit labelPosChanged();
48void QQuickStyleItemGroupBox::paintEvent(QPainter *painter)
const
50 QStyleOptionGroupBox styleOption;
51 initStyleOption(styleOption);
52 style()->drawComplexControl(QStyle::CC_GroupBox, &styleOption, painter);