13#include <QtQml/qqmlinfo.h>
14#include <QtQuick/private/qquickitem_p.h>
15#include <QtQuick/private/qquickclipnode_p.h>
16#include <QtQuick/private/qquickflickable_p.h>
18#if QT_CONFIG(accessibility)
19#include <QtQuick/private/qquickaccessibleattached_p.h>
24using namespace Qt::StringLiterals;
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
89
90
91
94
95
96
97
98
99
100
101
104
105
106
107
108
109
110
111
112
115
116
117
118
119
120
121
122
123
124
128#if QT_CONFIG(accessibility)
140 const QMarginsF oldInset = getInset();
141 extra.value().topInset = value;
142 extra.value().hasTopInset = !reset;
143 if (!qFuzzyCompare(oldInset.top(), value)) {
144 emit q->topInsetChanged();
145 q->insetChange(getInset(), oldInset);
152 const QMarginsF oldInset = getInset();
153 extra.value().leftInset = value;
154 extra.value().hasLeftInset = !reset;
155 if (!qFuzzyCompare(oldInset.left(), value)) {
156 emit q->leftInsetChanged();
157 q->insetChange(getInset(), oldInset);
164 const QMarginsF oldInset = getInset();
165 extra.value().rightInset = value;
166 extra.value().hasRightInset = !reset;
167 if (!qFuzzyCompare(oldInset.right(), value)) {
168 emit q->rightInsetChanged();
169 q->insetChange(getInset(), oldInset);
176 const QMarginsF oldInset = getInset();
177 extra.value().bottomInset = value;
178 extra.value().hasBottomInset = !reset;
179 if (!qFuzzyCompare(oldInset.bottom(), value)) {
180 emit q->bottomInsetChanged();
181 q->insetChange(getInset(), oldInset);
196 const auto flickable = qobject_cast<QQuickFlickable *>(background->parentItem());
198 QQuickItemPrivate *p = QQuickItemPrivate::get(background);
199 if (((!p->widthValid() || !extra.isAllocated() || !extra->hasBackgroundWidth) && qFuzzyIsNull(background->x()))
200 || (extra.isAllocated() && (extra->hasLeftInset || extra->hasRightInset))) {
201 const qreal bgWidth = flickable ? flickable->width() : width;
202 background->setX(getLeftInset());
203 background->setWidth(bgWidth - getLeftInset() - getRightInset());
206 if (((!p->heightValid() || !extra.isAllocated() || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
207 || (extra.isAllocated() && (extra->hasTopInset || extra->hasBottomInset))) {
208 const qreal bgHeight = flickable ? flickable->height() : height;
209 background->setY(getTopInset());
210 background->setHeight(bgHeight - getTopInset() - getBottomInset());
217
218
219
220
221
222
223
227 inheritFont(QQuickControlPrivate::parentFont(q));
232 QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
233 parentFont.setResolveMask(extra.isAllocated() ? extra->requestedFont.resolveMask() | font.resolveMask() : font.resolveMask());
235 const QFont defaultFont = QQuickTheme::font(QQuickTheme::TextArea);
236 QFont resolvedFont = parentFont.resolve(defaultFont);
238 setFont_helper(resolvedFont);
242
243
244
245
249 QFont oldFont = sourceFont;
250 q->QQuickTextEdit::setFont(font);
252 QQuickControlPrivate::updateFontRecur(q, font);
255 emit q->fontChanged();
258#if QT_CONFIG(quicktemplates2_hover)
259void QQuickTextAreaPrivate::updateHoverEnabled(
bool enabled,
bool xplicit)
262 if (!xplicit && explicitHoverEnabled)
265 bool wasEnabled = q->isHoverEnabled();
266 explicitHoverEnabled = xplicit;
267 if (wasEnabled != enabled) {
268 q->setAcceptHoverEvents(enabled);
269 QQuickControlPrivate::updateHoverEnabledRecur(q, enabled);
270 emit q->hoverEnabledChanged();
279 q->setParentItem(flickable->contentItem());
282 background->setParentItem(flickable);
284 QObjectPrivate::connect(q, &QQuickTextArea::contentSizeChanged,
this, &QQuickTextAreaPrivate::resizeFlickableContent);
285 QObjectPrivate::connect(q, &QQuickTextEdit::cursorRectangleChanged,
this, &QQuickTextAreaPrivate::ensureCursorVisible);
287 QObject::connect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update);
288 QObject::connect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update);
290 QQuickItemPrivate::get(flickable)->updateOrAddGeometryChangeListener(
this, QQuickGeometryChange::Size);
291 QQuickItemPrivate::get(flickable)->addItemChangeListener(
this, QQuickItemPrivate::Destroyed);
292 QObjectPrivate::connect(flickable, &QQuickFlickable::contentWidthChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
293 QObjectPrivate::connect(flickable, &QQuickFlickable::contentHeightChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
301 q->setParentItem(
nullptr);
302 if (background && background->parentItem() == flickable)
303 background->setParentItem(q);
305 QObjectPrivate::disconnect(q, &QQuickTextArea::contentSizeChanged,
this, &QQuickTextAreaPrivate::resizeFlickableContent);
306 QObjectPrivate::disconnect(q, &QQuickTextEdit::cursorRectangleChanged,
this, &QQuickTextAreaPrivate::ensureCursorVisible);
308 QObject::disconnect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update);
309 QObject::disconnect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update);
311 QQuickItemPrivate::get(flickable)->updateOrRemoveGeometryChangeListener(
this, QQuickGeometryChange::Nothing);
312 QQuickItemPrivate::get(flickable)->removeItemChangeListener(
this, QQuickItemPrivate::Destroyed);
313 QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentWidthChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
314 QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentHeightChanged,
this, &QQuickTextAreaPrivate::resizeFlickableControl);
332 const qreal tp = q->topPadding();
333 const qreal lp = q->leftPadding();
334 const QRectF cr = q->cursorRectangle();
336 if (cr.left() <= cx + lp) {
341 const qreal rp = q->rightPadding();
342 const QRectF nr = q->cursorPosition() < q->length() ? q->positionToRectangle(q->cursorPosition() + 1) : QRectF();
343 if (qFuzzyCompare(nr.y(), cr.y()) && nr.right() >= cx + lp + w - rp)
344 flickable->setContentX(nr.right() - w + rp);
345 else if (cr.right() >= cx + lp + w - rp)
346 flickable->setContentX(cr.right() - w + rp);
349 if (cr.top() <= cy + tp) {
352 const qreal bp = q->bottomPadding();
353 if (cr.bottom() >= cy + tp + h - bp && cr.bottom() <=
flickable->contentHeight())
354 flickable->setContentY(cr.bottom() - h + bp);
364 const qreal w = wrapMode == QQuickTextArea::NoWrap ? qMax(flickable->width(), flickable->contentWidth()) : flickable->width();
366 q->setSize(QSizeF(w, h));
377 flickable->setContentWidth(q->implicitWidth());
378 flickable->setContentHeight(q->implicitHeight());
384 if (!resizingBackground && item == background) {
385 QQuickItemPrivate *p = QQuickItemPrivate::get(item);
388 if (change.widthChange())
389 extra.value().hasBackgroundWidth = p->widthValid();
390 if (change.heightChange())
391 extra.value().hasBackgroundHeight = p->heightValid();
402 return QQuickItemPrivate::getImplicitWidth();
407 return QQuickItemPrivate::getImplicitHeight();
413 QQuickItemPrivate::implicitWidthChanged();
414 emit q->implicitWidthChanged3();
420 QQuickItemPrivate::implicitHeightChanged();
421 emit q->implicitHeightChanged3();
424#if QT_CONFIG(accessibility)
425void QQuickTextAreaPrivate::accessibilityActiveChanged(
bool active)
427 QQuickTextEditPrivate::accessibilityActiveChanged(active);
428 if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func()))
429 accessibleAttached->setDescriptionImplicitly(placeholder);
436 quickCancelDeferred(q, backgroundName());
442 if (background.wasExecuted())
445 if (!background || complete)
446 quickBeginDeferred(q, backgroundName(), background);
448 quickCompleteDeferred(q, backgroundName(), background);
454 if (item == background)
455 emit q->implicitBackgroundWidthChanged();
461 if (item == background)
462 emit q->implicitBackgroundHeightChanged();
468 if (item == background) {
469 background =
nullptr;
470 emit q->implicitBackgroundWidthChanged();
471 emit q->implicitBackgroundHeightChanged();
479 return QQuickTheme::palette(QQuickTheme::TextArea);
485 const auto focusReasonChanged = QQuickItemPrivate::setLastFocusChangeReason(reason);
486 if (focusReasonChanged)
487 emit q->focusReasonChanged();
489 return focusReasonChanged;
492QQuickTextArea::QQuickTextArea(QQuickItem *parent)
493 : QQuickTextEdit(*(
new QQuickTextAreaPrivate), parent)
496 setActiveFocusOnTab(
true);
497 setAcceptedMouseButtons(Qt::AllButtons);
498 d->setImplicitResizeEnabled(
false);
499 d->pressHandler.control =
this;
501#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
502 if (qEnvironmentVariable(
"QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR") == u"old"_s)
503 QQuickTextEdit::setOldSelectionDefault();
507QQuickTextArea::~QQuickTextArea()
511 d->detachFlickable();
512 QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
515QQuickTextAreaAttached *QQuickTextArea::qmlAttachedProperties(QObject *object)
517 return new QQuickTextAreaAttached(object);
520QFont QQuickTextArea::font()
const
522 Q_D(
const QQuickTextArea);
523 QFont font = QQuickTextEdit::font();
525 font.setResolveMask(d->extra.isAllocated() ? d->extra->requestedFont.resolveMask() : 0);
529void QQuickTextArea::setFont(
const QFont &font)
532 if (d->extra.isAllocated()
533 && d->extra.value().requestedFont.resolveMask() == font.resolveMask()
534 && d->extra.value().requestedFont == font)
537 d->extra.value().requestedFont = font;
542
543
544
545
546
547
548
549
550QQuickItem *QQuickTextArea::background()
const
552 QQuickTextAreaPrivate *d =
const_cast<QQuickTextAreaPrivate *>(d_func());
554 d->executeBackground();
555 return d->background;
558void QQuickTextArea::setBackground(QQuickItem *background)
561 if (d->background == background)
564 QQuickControlPrivate::warnIfCustomizationNotSupported(
this, background, QStringLiteral(
"background"));
566 if (!d->background.isExecuting())
567 d->cancelBackground();
569 const qreal oldImplicitBackgroundWidth = implicitBackgroundWidth();
570 const qreal oldImplicitBackgroundHeight = implicitBackgroundHeight();
572 if (d->extra.isAllocated()) {
573 d->extra.value().hasBackgroundWidth =
false;
574 d->extra.value().hasBackgroundHeight =
false;
577 QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
578 QQuickControlPrivate::hideOldItem(d->background);
579 d->background = background;
582 QQuickItemPrivate *p = QQuickItemPrivate::get(background);
583 if (p->widthValid() || p->heightValid()) {
584 d->extra.value().hasBackgroundWidth = p->widthValid();
585 d->extra.value().hasBackgroundHeight = p->heightValid();
588 background->setParentItem(d->flickable);
590 background->setParentItem(
this);
591 if (qFuzzyIsNull(background->z()))
592 background->setZ(-1);
593 if (isComponentComplete())
594 d->resizeBackground();
595 QQuickControlPrivate::addImplicitSizeListener(background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
598 if (!qFuzzyCompare(oldImplicitBackgroundWidth, implicitBackgroundWidth()))
599 emit implicitBackgroundWidthChanged();
600 if (!qFuzzyCompare(oldImplicitBackgroundHeight, implicitBackgroundHeight()))
601 emit implicitBackgroundHeightChanged();
602 if (!d->background.isExecuting())
603 emit backgroundChanged();
607
608
609
610
611
612QString QQuickTextArea::placeholderText()
const
614 Q_D(
const QQuickTextArea);
615 return d->placeholder;
618void QQuickTextArea::setPlaceholderText(
const QString &text)
621 if (d->placeholder == text)
624 d->placeholder = text;
625#if QT_CONFIG(accessibility)
626 if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(
this))
627 accessibleAttached->setDescriptionImplicitly(text);
629 emit placeholderTextChanged();
633
634
635
636
637
638
639
640QColor QQuickTextArea::placeholderTextColor()
const
642 Q_D(
const QQuickTextArea);
643 return d->placeholderColor;
646void QQuickTextArea::setPlaceholderTextColor(
const QColor &color)
649 if (d->placeholderColor == color)
652 d->placeholderColor = color;
653 emit placeholderTextColorChanged();
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675Qt::FocusReason QQuickTextArea::focusReason()
const
677 Q_D(
const QQuickTextArea);
678 return d->lastFocusChangeReason();
681void QQuickTextArea::setFocusReason(Qt::FocusReason reason)
684 d->setLastFocusChangeReason(reason);
688bool QQuickTextArea::contains(
const QPointF &point)
const
690 Q_D(
const QQuickTextArea);
691 if (d->flickable && !d->flickable->contains(d->flickable->mapFromItem(
this, point)))
693 return QQuickTextEdit::contains(point);
697
698
699
700
701
702
703
704
705bool QQuickTextArea::isHovered()
const
707#if QT_CONFIG(quicktemplates2_hover)
708 Q_D(
const QQuickTextArea);
715void QQuickTextArea::setHovered(
bool hovered)
717#if QT_CONFIG(quicktemplates2_hover)
719 if (hovered == d->hovered)
722 d->hovered = hovered;
723 emit hoveredChanged();
724 QQuickToolTipAttachedPrivate::maybeSetVisibleImplicitly(
this, hovered);
731
732
733
734
735
736
737
738bool QQuickTextArea::isHoverEnabled()
const
740#if QT_CONFIG(quicktemplates2_hover)
741 Q_D(
const QQuickTextArea);
742 return d->hoverEnabled;
748void QQuickTextArea::setHoverEnabled(
bool enabled)
750#if QT_CONFIG(quicktemplates2_hover)
752 if (d->explicitHoverEnabled && enabled == d->hoverEnabled)
755 d->updateHoverEnabled(enabled,
true);
761void QQuickTextArea::resetHoverEnabled()
763#if QT_CONFIG(quicktemplates2_hover)
765 if (!d->explicitHoverEnabled)
768 d->explicitHoverEnabled =
false;
769 d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem),
false);
774
775
776
777
778
779
780
781
782
783
784qreal QQuickTextArea::implicitBackgroundWidth()
const
786 Q_D(
const QQuickTextArea);
789 return d->background->implicitWidth();
793
794
795
796
797
798
799
800
801
802
803qreal QQuickTextArea::implicitBackgroundHeight()
const
805 Q_D(
const QQuickTextArea);
808 return d->background->implicitHeight();
812
813
814
815
816
817
818
819qreal QQuickTextArea::topInset()
const
821 Q_D(
const QQuickTextArea);
822 return d->getTopInset();
825void QQuickTextArea::setTopInset(qreal inset)
828 d->setTopInset(inset);
831void QQuickTextArea::resetTopInset()
834 d->setTopInset(0,
true);
838
839
840
841
842
843
844
845qreal QQuickTextArea::leftInset()
const
847 Q_D(
const QQuickTextArea);
848 return d->getLeftInset();
851void QQuickTextArea::setLeftInset(qreal inset)
854 d->setLeftInset(inset);
857void QQuickTextArea::resetLeftInset()
860 d->setLeftInset(0,
true);
864
865
866
867
868
869
870
871qreal QQuickTextArea::rightInset()
const
873 Q_D(
const QQuickTextArea);
874 return d->getRightInset();
877void QQuickTextArea::setRightInset(qreal inset)
880 d->setRightInset(inset);
883void QQuickTextArea::resetRightInset()
886 d->setRightInset(0,
true);
890
891
892
893
894
895
896
897qreal QQuickTextArea::bottomInset()
const
899 Q_D(
const QQuickTextArea);
900 return d->getBottomInset();
903void QQuickTextArea::setBottomInset(qreal inset)
906 d->setBottomInset(inset);
909void QQuickTextArea::resetBottomInset()
912 d->setBottomInset(0,
true);
915void QQuickTextArea::classBegin()
918 QQuickTextEdit::classBegin();
922void QQuickTextArea::componentComplete()
925 d->executeBackground(
true);
926 QQuickTextEdit::componentComplete();
927 d->resizeBackground();
928#if QT_CONFIG(quicktemplates2_hover)
929 if (!d->explicitHoverEnabled)
930 setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem));
934void QQuickTextArea::itemChange(QQuickItem::ItemChange change,
const QQuickItem::ItemChangeData &value)
937 QQuickTextEdit::itemChange(change, value);
939 case ItemEnabledHasChanged:
941 case ItemSceneChange:
942 case ItemParentHasChanged:
943 if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) {
945#if QT_CONFIG(quicktemplates2_hover)
946 if (!d->explicitHoverEnabled)
947 d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem),
false);
949 if (change == ItemParentHasChanged) {
950 QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(value.item->parentItem());
952 QQuickScrollView *scrollView = qobject_cast<QQuickScrollView *>(flickable->parentItem());
954 d->attachFlickable(flickable);
964void QQuickTextArea::geometryChange(
const QRectF &newGeometry,
const QRectF &oldGeometry)
967 QQuickTextEdit::geometryChange(newGeometry, oldGeometry);
968 d->resizeBackground();
971void QQuickTextArea::insetChange(
const QMarginsF &newInset,
const QMarginsF &oldInset)
976 d->resizeBackground();
979QSGNode *QQuickTextArea::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data)
982 QQuickDefaultClipNode *clipNode =
static_cast<QQuickDefaultClipNode *>(oldNode);
984 clipNode =
new QQuickDefaultClipNode(QRectF());
986 QQuickItem *clipper =
this;
988 clipper = d->flickable;
990 const QRectF cr = clipper->clipRect().adjusted(
991 leftPadding(), topPadding(),
992 (!d->cursorItem && effectiveHAlign() == HAlignment::AlignRight ? 1 : 0) - rightPadding(),
995 clipNode->setRect(!d->flickable ? cr : cr.translated(d->flickable->contentX(), d->flickable->contentY()));
998 QSGNode *textNode = QQuickTextEdit::updatePaintNode(clipNode->firstChild(), data);
999 if (!textNode->parent())
1000 clipNode->appendChildNode(textNode);
1002 if (d->cursorItem) {
1003 QQuickDefaultClipNode *cursorNode = QQuickItemPrivate::get(d->cursorItem)->clipNode();
1005 cursorNode->setClipRect(d->cursorItem->mapRectFromItem(clipper, cr));
1011void QQuickTextArea::focusInEvent(QFocusEvent *event)
1013 QQuickTextEdit::focusInEvent(event);
1016void QQuickTextArea::focusOutEvent(QFocusEvent *event)
1018 QQuickTextEdit::focusOutEvent(event);
1021#if QT_CONFIG(quicktemplates2_hover)
1022void QQuickTextArea::hoverEnterEvent(QHoverEvent *event)
1024 Q_D(QQuickTextArea);
1025 QQuickTextEdit::hoverEnterEvent(event);
1026 setHovered(d->hoverEnabled);
1030void QQuickTextArea::hoverLeaveEvent(QHoverEvent *event)
1032 QQuickTextEdit::hoverLeaveEvent(event);
1038void QQuickTextArea::mousePressEvent(QMouseEvent *event)
1040 Q_D(QQuickTextArea);
1041 d->pressHandler.mousePressEvent(event);
1042 if (d->pressHandler.isActive()) {
1043 if (d->pressHandler.delayedMousePressEvent) {
1044 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1045 d->pressHandler.clearDelayedMouseEvent();
1049 const bool wasAccepted = event->isAccepted();
1050 QQuickTextEdit::mousePressEvent(event);
1056void QQuickTextArea::mouseMoveEvent(QMouseEvent *event)
1058 Q_D(QQuickTextArea);
1059 d->pressHandler.mouseMoveEvent(event);
1060 if (d->pressHandler.isActive()) {
1061 if (d->pressHandler.delayedMousePressEvent) {
1062 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1063 d->pressHandler.clearDelayedMouseEvent();
1065 QQuickTextEdit::mouseMoveEvent(event);
1069void QQuickTextArea::mouseReleaseEvent(QMouseEvent *event)
1071 Q_D(QQuickTextArea);
1072 d->pressHandler.mouseReleaseEvent(event);
1073 if (d->pressHandler.isActive()) {
1074 if (d->pressHandler.delayedMousePressEvent) {
1075 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1076 d->pressHandler.clearDelayedMouseEvent();
1078 QQuickTextEdit::mouseReleaseEvent(event);
1082void QQuickTextArea::mouseDoubleClickEvent(QMouseEvent *event)
1084 Q_D(QQuickTextArea);
1085 if (d->pressHandler.delayedMousePressEvent) {
1086 QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent.get());
1087 d->pressHandler.clearDelayedMouseEvent();
1089 QQuickTextEdit::mouseDoubleClickEvent(event);
1092void QQuickTextArea::timerEvent(QTimerEvent *event)
1094 Q_D(QQuickTextArea);
1095 if (event->timerId() == d->pressHandler.timer.timerId())
1096 d->pressHandler.timerEvent(event);
1098 QQuickTextEdit::timerEvent(event);
1107QQuickTextAreaAttached::QQuickTextAreaAttached(QObject *parent)
1108 : QObject(*(
new QQuickTextAreaAttachedPrivate), parent)
1113
1114
1115
1116
1117
1118
1119QQuickTextArea *QQuickTextAreaAttached::flickable()
const
1121 Q_D(
const QQuickTextAreaAttached);
1125void QQuickTextAreaAttached::setFlickable(QQuickTextArea *control)
1127 Q_D(QQuickTextAreaAttached);
1128 QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(parent());
1130 qmlWarning(parent()) <<
"TextArea attached property must be attached to an object deriving from Flickable";
1134 if (d->control == control)
1138 QQuickTextAreaPrivate::get(d->control)->detachFlickable();
1140 d->control = control;
1143 QQuickTextAreaPrivate::get(control)->attachFlickable(flickable);
1145 emit flickableChanged();
1150#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.