aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquicktextfield.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-09-14 12:09:39 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-09-14 12:09:39 +0200
commita6ca9472de6d4cbdb85dfceaa4f8c10b243cea07 (patch)
tree719e2c3a1732ab0cc82c32d560484b5740f40a05 /src/quicktemplates2/qquicktextfield.cpp
parent658b0f610a71fab8c103b913d2cfd11c3c7c6bef (diff)
parentb3619f32c20b5851ada0826ec2e7ddc2ec8a210b (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts: src/quicktemplates2/qquicktextarea_p_p.h src/quicktemplates2/qquicktextfield_p_p.h Change-Id: Ie7b4a114ad27a4cad337c91e8ebcf696b0e845d7
Diffstat (limited to 'src/quicktemplates2/qquicktextfield.cpp')
-rw-r--r--src/quicktemplates2/qquicktextfield.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp
index 88450e78..0ca0c6ce 100644
--- a/src/quicktemplates2/qquicktextfield.cpp
+++ b/src/quicktemplates2/qquicktextfield.cpp
@@ -265,6 +265,18 @@ QAccessible::Role QQuickTextFieldPrivate::accessibleRole() const
}
#endif
+/*
+ Deletes "delegate" if Component.completed() has been emitted,
+ otherwise stores it in pendingDeletions.
+*/
+void QQuickTextFieldPrivate::deleteDelegate(QObject *delegate)
+{
+ if (componentComplete)
+ delete delegate;
+ else
+ pendingDeletions.append(delegate);
+}
+
QFont QQuickTextField::font() const
{
return QQuickTextInput::font();
@@ -303,7 +315,7 @@ void QQuickTextField::setBackground(QQuickItem *background)
if (d->background == background)
return;
- delete d->background;
+ d->deleteDelegate(d->background);
d->background = background;
if (background) {
background->setParentItem(this);
@@ -440,6 +452,9 @@ void QQuickTextField::componentComplete()
if (!d->accessibleAttached && QAccessible::isActive())
d->accessibilityActiveChanged(true);
#endif
+
+ qDeleteAll(d->pendingDeletions);
+ d->pendingDeletions.clear();
}
void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)