16void QQuickStyleItemSearchField::connectToControl()
const
18 QQuickStyleItem::connectToControl();
19 auto searchField = control<QQuickSearchField>();
20 connect(searchField->searchIndicator(), &QQuickIndicatorButton::pressedChanged,
this, &QQuickStyleItem::markImageDirty);
21 connect(searchField->clearIndicator(), &QQuickIndicatorButton::pressedChanged,
this, &QQuickStyleItem::markImageDirty);
22 connect(searchField, &QQuickSearchField::textChanged,
this, &QQuickStyleItem::markImageDirty);
26void QQuickStyleItemSearchField::paintEvent(QPainter *painter)
const
28 QStyleOptionSearchField styleOption;
29 initStyleOption(styleOption);
30 style()->drawComplexControl(QStyle::CC_SearchField, &styleOption, painter);
33StyleItemGeometry QQuickStyleItemSearchField::calculateGeometry() {
34 QStyleOptionSearchField styleOption;
35 initStyleOption(styleOption);
36 StyleItemGeometry geometry;
38 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_SearchField, &styleOption, QSize(0, 0));
40 if (styleOption.subControls == QStyle::SC_SearchFieldFrame) {
41 geometry.implicitSize = style()->sizeFromContents(QStyle::CT_SearchField, &styleOption, contentSize());
42 styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
43 geometry.contentRect = style()->subControlRect(QStyle::CC_SearchField, &styleOption, QStyle::SC_SearchFieldEditField);
44 geometry.layoutRect = style()->subElementRect(QStyle::SE_SearchFieldLayoutItem, &styleOption);
45 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_SearchField, &styleOption, geometry.minimumSize);
46 geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_SearchFieldFocusFrameRadius, &styleOption);
48 geometry.implicitSize = geometry.minimumSize;