12#include <QtQml/qqmlinfo.h>
13#include <QtQuick/private/qquickitem_p.h>
14#include <QtQuick/private/qquickclipnode_p.h>
15#include <QtQuick/private/qquickflickable_p.h>
17#if QT_CONFIG(accessibility)
18#include <QtQuick/private/qquickaccessibleattached_p.h>
23using namespace Qt::StringLiterals;
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
91
92
93
94
95
96
97
98
101
102
103
104
105
106
107
108
109
112
113
114
115
116
117
118
119
120
121
125#if QT_CONFIG(accessibility)
137 const QMarginsF oldInset = getInset();
138 extra.value().topInset = value;
139 extra.value().hasTopInset = !reset;
140 if (!qFuzzyCompare(oldInset.top(), value)) {
141 emit q->topInsetChanged();
142 q->insetChange(getInset(), oldInset);
149 const QMarginsF oldInset = getInset();
150 extra.value().leftInset = value;
151 extra.value().hasLeftInset = !reset;
152 if (!qFuzzyCompare(oldInset.left(), value)) {
153 emit q->leftInsetChanged();
154 q->insetChange(getInset(), oldInset);
161 const QMarginsF oldInset = getInset();
162 extra.value().rightInset = value;
163 extra.value().hasRightInset = !reset;
164 if (!qFuzzyCompare(oldInset.right(), value)) {
165 emit q->rightInsetChanged();
166 q->insetChange(getInset(), oldInset);
173 const QMarginsF oldInset = getInset();
174 extra.value().bottomInset = value;
175 extra.value().hasBottomInset = !reset;
176 if (!qFuzzyCompare(oldInset.bottom(), value)) {
177 emit q->bottomInsetChanged();
178 q->insetChange(getInset(), oldInset);
193 const auto flickable = qobject_cast<QQuickFlickable *>(background->parentItem());
195 QQuickItemPrivate *p = QQuickItemPrivate::get(background);
196 if (((!p->widthValid() || !extra.isAllocated() || !extra->hasBackgroundWidth) && qFuzzyIsNull(background->x()))
197 || (extra.isAllocated() && (extra->hasLeftInset || extra->hasRightInset))) {
198 const qreal bgWidth = flickable ? flickable->width() : width;
199 background->setX(getLeftInset());
200 background->setWidth(bgWidth - getLeftInset() - getRightInset());
203 if (((!p->heightValid() || !extra.isAllocated() || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
204 || (extra.isAllocated() && (extra->hasTopInset || extra->hasBottomInset))) {
205 const qreal bgHeight = flickable ? flickable->height() : height;
206 background->setY(getTopInset());
207 background->setHeight(bgHeight - getTopInset() - getBottomInset());
214
215
216
217
218
219
220
224 inheritFont(QQuickControlPrivate::parentFont(q));
229 QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
230 parentFont.setResolveMask(extra.isAllocated() ? extra->requestedFont.resolveMask() | font.resolveMask() : font.resolveMask());
232 const QFont defaultFont = QQuickTheme::font(QQuickTheme::TextArea);
233 QFont resolvedFont = parentFont.resolve(defaultFont);
235 setFont_helper(resolvedFont);
239
240
241
242
246 QFont oldFont = sourceFont;
247 q->QQuickTextEdit::setFont(font);
249 QQuickControlPrivate::updateFontRecur(q, font);
252 emit q->fontChanged();
255#if QT_CONFIG(quicktemplates2_hover)
256void QQuickTextAreaPrivate::updateHoverEnabled(
bool enabled,
bool xplicit)
259 if (!xplicit && explicitHoverEnabled)
262 bool wasEnabled = q->isHoverEnabled();
263 explicitHoverEnabled = xplicit;
264 if (wasEnabled != enabled) {
265 q->setAcceptHoverEvents(enabled);
266 QQuickControlPrivate::updateHoverEnabledRecur(q, enabled);
267 emit q->hoverEnabledChanged();
276 q->setParentItem(flickable->contentItem());
279 background->setParentItem(flickable);
281 QObjectPrivate::connect(q, &QQuickTextArea::contentSizeChanged,
this, &QQuickTextAreaPrivate::resizeFlickableContent);
282 QObjectPrivate::connect(q, &QQuickTextEdit::cursorRectangleChanged,
this, &QQuickTextAreaPrivate::ensureCursorVisible);
284 QObject::connect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update);
285 QObject::connect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update);
287 QQuickItemPrivate::get(flickable)->updateOrAddGeometryChangeListener(
this, QQuickGeometryChange::Size);
288 QQuickItemPrivate::get(flickable)->addItemChangeListener(
this, QQuickItemPrivate::Destroyed);
289 QObjectPrivate::connect(flickable, &QQuickFlickable::contentWidthChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
290 QObjectPrivate::connect(flickable, &QQuickFlickable::contentHeightChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
298 q->setParentItem(
nullptr);
299 if (background && background->parentItem() == flickable)
300 background->setParentItem(q);
302 QObjectPrivate::disconnect(q, &QQuickTextArea::contentSizeChanged,
this, &QQuickTextAreaPrivate::resizeFlickableContent);
303 QObjectPrivate::disconnect(q, &QQuickTextEdit::cursorRectangleChanged,
this, &QQuickTextAreaPrivate::ensureCursorVisible);
305 QObject::disconnect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update);
306 QObject::disconnect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update);
308 QQuickItemPrivate::get(flickable)->updateOrRemoveGeometryChangeListener(
this, QQuickGeometryChange::Nothing);
309 QQuickItemPrivate::get(flickable)->removeItemChangeListener(
this, QQuickItemPrivate::Destroyed);
310 QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentWidthChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
311 QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentHeightChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
329 const qreal tp = q->topPadding();
330 const qreal lp = q->leftPadding();
331 const QRectF cr = q->cursorRectangle();
333 if (cr.left() <= cx + lp) {
338 const qreal rp = q->rightPadding();
339 const QRectF nr = q->cursorPosition() < q->length() ? q->positionToRectangle(q->cursorPosition() + 1) : QRectF();
340 if (qFuzzyCompare(nr.y(), cr.y()) && nr.right() >= cx + lp + w - rp)
341 flickable->setContentX(nr.right() - w + rp);
342 else if (cr.right() >= cx + lp + w - rp)
343 flickable->setContentX(cr.right() - w + rp);
346 if (cr.top() <= cy + tp) {
349 const qreal bp = q->bottomPadding();
350 if (cr.bottom() >= cy + tp + h - bp && cr.bottom() <=
flickable->contentHeight())
351 flickable->setContentY(cr.bottom() - h + bp);
361 const qreal w = wrapMode == QQuickTextArea::NoWrap ? qMax(flickable->width(), flickable->contentWidth()) : flickable->width();
363 q->setSize(QSizeF(w, h));
374 flickable->setContentWidth(q->implicitWidth());
375 flickable->setContentHeight(q->implicitHeight());
381 if (!resizingBackground && item == background) {
382 QQuickItemPrivate *p = QQuickItemPrivate::get(item);
385 if (change.widthChange())
386 extra.value().hasBackgroundWidth = p->widthValid();
387 if (change.heightChange())
388 extra.value().hasBackgroundHeight = p->heightValid();
399 return QQuickItemPrivate::getImplicitWidth();
404 return QQuickItemPrivate::getImplicitHeight();
410 QQuickItemPrivate::implicitWidthChanged();
411 emit q->implicitWidthChanged3();
417 QQuickItemPrivate::implicitHeightChanged();
418 emit q->implicitHeightChanged3();
421#if QT_CONFIG(accessibility)
422void QQuickTextAreaPrivate::accessibilityActiveChanged(
bool active)
424 QQuickTextEditPrivate::accessibilityActiveChanged(active);
425 if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func()))
426 accessibleAttached->setDescriptionImplicitly(placeholder);
433 quickCancelDeferred(q, backgroundName());
439 if (background.wasExecuted())
442 if (!background || complete)
443 quickBeginDeferred(q, backgroundName(), background);
445 quickCompleteDeferred(q, backgroundName(), background);
451 if (item == background)
452 emit q->implicitBackgroundWidthChanged();
458 if (item == background)
459 emit q->implicitBackgroundHeightChanged();
465 if (item == background) {
466 background =
nullptr;
467 emit q->implicitBackgroundWidthChanged();
468 emit q->implicitBackgroundHeightChanged();
476 return QQuickTheme::palette(QQuickTheme::TextArea);
482 const auto focusReasonChanged = QQuickItemPrivate::setLastFocusChangeReason(reason);
483 if (focusReasonChanged)
484 emit q->focusReasonChanged();
486 return focusReasonChanged;
489QQuickTextArea::QQuickTextArea(QQuickItem *parent)
490 : QQuickTextEdit(*(
new QQuickTextAreaPrivate), parent)
493 setActiveFocusOnTab(
true);
494 setAcceptedMouseButtons(Qt::AllButtons);
495 d->setImplicitResizeEnabled(
false);
496 d->pressHandler.control =
this;
498#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
499 if (qEnvironmentVariable(
"QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR") == u"old"_s)
500 QQuickTextEdit::setOldSelectionDefault();
504QQuickTextArea::~QQuickTextArea()
508 d->detachFlickable();
509 QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
512QQuickTextAreaAttached *QQuickTextArea::qmlAttachedProperties(QObject *object)
514 return new QQuickTextAreaAttached(object);
517QFont QQuickTextArea::font()
const
519 Q_D(
const QQuickTextArea);
520 QFont font = QQuickTextEdit::font();
522 font.setResolveMask(d->extra.value().requestedFont.resolveMask());
526void QQuickTextArea::setFont(
const QFont &font)
529 if (d->extra.value().requestedFont.resolveMask() == font.resolveMask() && d->extra.value().requestedFont == font)
532 d->extra.value().requestedFont = font;
537
538
539
540
541
542
543
544
545QQuickItem *QQuickTextArea::background()
const
547 QQuickTextAreaPrivate *d =
const_cast<QQuickTextAreaPrivate *>(d_func());
549 d->executeBackground();
550 return d->background;
553void QQuickTextArea::setBackground(QQuickItem *background)
556 if (d->background == background)
559 QQuickControlPrivate::warnIfCustomizationNotSupported(
this, background, QStringLiteral(
"background"));
561 if (!d->background.isExecuting())
562 d->cancelBackground();
564 const qreal oldImplicitBackgroundWidth = implicitBackgroundWidth();
565 const qreal oldImplicitBackgroundHeight = implicitBackgroundHeight();
567 if (d->extra.isAllocated()) {
568 d->extra.value().hasBackgroundWidth =
false;
569 d->extra.value().hasBackgroundHeight =
false;
572 QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
573 QQuickControlPrivate::hideOldItem(d->background);
574 d->background = background;
577 QQuickItemPrivate *p = QQuickItemPrivate::get(background);
578 if (p->widthValid() || p->heightValid()) {
579 d->extra.value().hasBackgroundWidth = p->widthValid();
580 d->extra.value().hasBackgroundHeight = p->heightValid();
583 background->setParentItem(d->flickable);
585 background->setParentItem(
this);
586 if (qFuzzyIsNull(background->z()))
587 background->setZ(-1);
588 if (isComponentComplete())
589 d->resizeBackground();
590 QQuickControlPrivate::addImplicitSizeListener(background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
593 if (!qFuzzyCompare(oldImplicitBackgroundWidth, implicitBackgroundWidth()))
594 emit implicitBackgroundWidthChanged();
595 if (!qFuzzyCompare(oldImplicitBackgroundHeight, implicitBackgroundHeight()))
596 emit implicitBackgroundHeightChanged();
597 if (!d->background.isExecuting())
598 emit backgroundChanged();
602
603
604
605
606
607QString QQuickTextArea::placeholderText()
const
609 Q_D(
const QQuickTextArea);
610 return d->placeholder;
613void QQuickTextArea::setPlaceholderText(
const QString &text)
616 if (d->placeholder == text)
619 d->placeholder = text;
620#if QT_CONFIG(accessibility)
621 if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(
this))
622 accessibleAttached->setDescriptionImplicitly(text);
624 emit placeholderTextChanged();
628
629
630
631
632
633
634
635QColor QQuickTextArea::placeholderTextColor()
const
637 Q_D(
const QQuickTextArea);
638 return d->placeholderColor;
641void QQuickTextArea::setPlaceholderTextColor(
const QColor &color)
644 if (d->placeholderColor == color)
647 d->placeholderColor = color;
648 emit placeholderTextColorChanged();
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670Qt::FocusReason QQuickTextArea::focusReason()
const
672 Q_D(
const QQuickTextArea);
673 return d->lastFocusChangeReason();
676void QQuickTextArea::setFocusReason(Qt::FocusReason reason)
679 d->setLastFocusChangeReason(reason);
683bool QQuickTextArea::contains(
const QPointF &point)
const
685 Q_D(
const QQuickTextArea);
686 if (d->flickable && !d->flickable->contains(d->flickable->mapFromItem(
this, point)))
688 return QQuickTextEdit::contains(point);
692
693
694
695
696
697
698
699
700bool QQuickTextArea::isHovered()
const
702#if QT_CONFIG(quicktemplates2_hover)
703 Q_D(
const QQuickTextArea);
710void QQuickTextArea::setHovered(
bool hovered)
712#if QT_CONFIG(quicktemplates2_hover)
714 if (hovered == d->hovered)
717 d->hovered = hovered;
718 emit hoveredChanged();
725
726
727
728
729
730
731
732bool QQuickTextArea::isHoverEnabled()
const
734#if QT_CONFIG(quicktemplates2_hover)
735 Q_D(
const QQuickTextArea);
736 return d->hoverEnabled;
742void QQuickTextArea::setHoverEnabled(
bool enabled)
744#if QT_CONFIG(quicktemplates2_hover)
746 if (d->explicitHoverEnabled && enabled == d->hoverEnabled)
749 d->updateHoverEnabled(enabled,
true);
755void QQuickTextArea::resetHoverEnabled()
757#if QT_CONFIG(quicktemplates2_hover)
759 if (!d->explicitHoverEnabled)
762 d->explicitHoverEnabled =
false;
763 d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem),
false);
768
769
770
771
772
773
774
775
776
777
778qreal QQuickTextArea::implicitBackgroundWidth()
const
780 Q_D(
const QQuickTextArea);
783 return d->background->implicitWidth();
787
788
789
790
791
792
793
794
795
796
797qreal QQuickTextArea::implicitBackgroundHeight()
const
799 Q_D(
const QQuickTextArea);
802 return d->background->implicitHeight();
806
807
808
809
810
811
812
813qreal QQuickTextArea::topInset()
const
815 Q_D(
const QQuickTextArea);
816 return d->getTopInset();
819void QQuickTextArea::setTopInset(qreal inset)
822 d->setTopInset(inset);
825void QQuickTextArea::resetTopInset()
828 d->setTopInset(0,
true);
832
833
834
835
836
837
838
839qreal QQuickTextArea::leftInset()
const
841 Q_D(
const QQuickTextArea);
842 return d->getLeftInset();
845void QQuickTextArea::setLeftInset(qreal inset)
848 d->setLeftInset(inset);
851void QQuickTextArea::resetLeftInset()
854 d->setLeftInset(0,
true);
858
859
860
861
862
863
864
865qreal QQuickTextArea::rightInset()
const
867 Q_D(
const QQuickTextArea);
868 return d->getRightInset();
871void QQuickTextArea::setRightInset(qreal inset)
874 d->setRightInset(inset);
877void QQuickTextArea::resetRightInset()
880 d->setRightInset(0,
true);
884
885
886
887
888
889
890
891qreal QQuickTextArea::bottomInset()
const
893 Q_D(
const QQuickTextArea);
894 return d->getBottomInset();
897void QQuickTextArea::setBottomInset(qreal inset)
900 d->setBottomInset(inset);
903void QQuickTextArea::resetBottomInset()
906 d->setBottomInset(0,
true);
909void QQuickTextArea::classBegin()
912 QQuickTextEdit::classBegin();
916void QQuickTextArea::componentComplete()
919 d->executeBackground(
true);
920 QQuickTextEdit::componentComplete();
921 d->resizeBackground();
922#if QT_CONFIG(quicktemplates2_hover)
923 if (!d->explicitHoverEnabled)
924 setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem));
928void QQuickTextArea::itemChange(QQuickItem::ItemChange change,
const QQuickItem::ItemChangeData &value)
931 QQuickTextEdit::itemChange(change, value);
933 case ItemEnabledHasChanged:
935 case ItemSceneChange:
936 case ItemParentHasChanged:
937 if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) {
939#if QT_CONFIG(quicktemplates2_hover)
940 if (!d->explicitHoverEnabled)
941 d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem),
false);
943 if (change == ItemParentHasChanged) {
944 QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(value.item->parentItem());
946 QQuickScrollView *scrollView = qobject_cast<QQuickScrollView *>(flickable->parentItem());
948 d->attachFlickable(flickable);
958void QQuickTextArea::geometryChange(
const QRectF &newGeometry,
const QRectF &oldGeometry)
961 QQuickTextEdit::geometryChange(newGeometry, oldGeometry);
962 d->resizeBackground();
965void QQuickTextArea::insetChange(
const QMarginsF &newInset,
const QMarginsF &oldInset)
970 d->resizeBackground();
973QSGNode *QQuickTextArea::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data)
976 QQuickDefaultClipNode *clipNode =
static_cast<QQuickDefaultClipNode *>(oldNode);
978 clipNode =
new QQuickDefaultClipNode(QRectF());
980 QQuickItem *clipper =
this;
982 clipper = d->flickable;
984 const QRectF cr = clipper->clipRect().adjusted(
985 leftPadding(), topPadding(),
986 (!d->cursorItem && effectiveHAlign() == HAlignment::AlignRight ? 1 : 0) - rightPadding(),
989 clipNode->setRect(!d->flickable ? cr : cr.translated(d->flickable->contentX(), d->flickable->contentY()));
992 QSGNode *textNode = QQuickTextEdit::updatePaintNode(clipNode->firstChild(), data);
993 if (!textNode->parent())
994 clipNode->appendChildNode(textNode);
997 QQuickDefaultClipNode *cursorNode = QQuickItemPrivate::get(d->cursorItem)->clipNode();
999 cursorNode->setClipRect(d->cursorItem->mapRectFromItem(clipper, cr));
1005void QQuickTextArea::focusInEvent(QFocusEvent *event)
1007 QQuickTextEdit::focusInEvent(event);
1010void QQuickTextArea::focusOutEvent(QFocusEvent *event)
1012 QQuickTextEdit::focusOutEvent(event);
1015#if QT_CONFIG(quicktemplates2_hover)
1016void QQuickTextArea::hoverEnterEvent(QHoverEvent *event)
1018 Q_D(QQuickTextArea);
1019 QQuickTextEdit::hoverEnterEvent(event);
1020 setHovered(d->hoverEnabled);
1024void QQuickTextArea::hoverLeaveEvent(QHoverEvent *event)
1026 QQuickTextEdit::hoverLeaveEvent(event);
1032void QQuickTextArea::mousePressEvent(QMouseEvent *event)
1034 Q_D(QQuickTextArea);
1035 d->pressHandler.mousePressEvent(event);
1036 if (d->pressHandler.isActive()) {
1037 if (d->pressHandler.delayedMousePressEvent) {
1038 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1039 d->pressHandler.clearDelayedMouseEvent();
1043 const bool wasAccepted = event->isAccepted();
1044 QQuickTextEdit::mousePressEvent(event);
1050void QQuickTextArea::mouseMoveEvent(QMouseEvent *event)
1052 Q_D(QQuickTextArea);
1053 d->pressHandler.mouseMoveEvent(event);
1054 if (d->pressHandler.isActive()) {
1055 if (d->pressHandler.delayedMousePressEvent) {
1056 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1057 d->pressHandler.clearDelayedMouseEvent();
1059 QQuickTextEdit::mouseMoveEvent(event);
1063void QQuickTextArea::mouseReleaseEvent(QMouseEvent *event)
1065 Q_D(QQuickTextArea);
1066 d->pressHandler.mouseReleaseEvent(event);
1067 if (d->pressHandler.isActive()) {
1068 if (d->pressHandler.delayedMousePressEvent) {
1069 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1070 d->pressHandler.clearDelayedMouseEvent();
1072 QQuickTextEdit::mouseReleaseEvent(event);
1076void QQuickTextArea::mouseDoubleClickEvent(QMouseEvent *event)
1078 Q_D(QQuickTextArea);
1079 if (d->pressHandler.delayedMousePressEvent) {
1080 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1081 d->pressHandler.clearDelayedMouseEvent();
1083 QQuickTextEdit::mouseDoubleClickEvent(event);
1086void QQuickTextArea::timerEvent(QTimerEvent *event)
1088 Q_D(QQuickTextArea);
1089 if (event->timerId() == d->pressHandler.timer.timerId())
1090 d->pressHandler.timerEvent(event);
1092 QQuickTextEdit::timerEvent(event);
1101QQuickTextAreaAttached::QQuickTextAreaAttached(QObject *parent)
1102 : QObject(*(
new QQuickTextAreaAttachedPrivate), parent)
1107
1108
1109
1110
1111
1112
1113QQuickTextArea *QQuickTextAreaAttached::flickable()
const
1115 Q_D(
const QQuickTextAreaAttached);
1119void QQuickTextAreaAttached::setFlickable(QQuickTextArea *control)
1121 Q_D(QQuickTextAreaAttached);
1122 QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(parent());
1124 qmlWarning(parent()) <<
"TextArea attached property must be attached to an object deriving from Flickable";
1128 if (d->control == control)
1132 QQuickTextAreaPrivate::get(d->control)->detachFlickable();
1134 d->control = control;
1137 QQuickTextAreaPrivate::get(control)->attachFlickable(flickable);
1139 emit flickableChanged();
1144#include "moc_qquicktextarea_p.cpp"
void implicitWidthChanged() override
qreal getImplicitWidth() const override
bool setLastFocusChangeReason(Qt::FocusReason reason) override
QQuickFlickable * flickable
void setTopInset(qreal value, bool reset=false)
void setLeftInset(qreal value, bool reset=false)
void setRightInset(qreal value, bool reset=false)
void executeBackground(bool complete=false)
void updateFont(const QFont &font)
void setBottomInset(qreal value, bool reset=false)
void itemDestroyed(QQuickItem *item) override
void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override
void itemImplicitWidthChanged(QQuickItem *item) override
void attachFlickable(QQuickFlickable *flickable)
void resizeFlickableControl()
void inheritFont(const QFont &font)
qreal getImplicitHeight() const override
void ensureCursorVisible()
void itemImplicitHeightChanged(QQuickItem *item) override
void resizeFlickableContent()
QPalette defaultPalette() const override
void implicitHeightChanged() override
Combined button and popup list for selecting options.