diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-09-14 12:09:39 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-09-14 12:09:39 +0200 |
commit | a6ca9472de6d4cbdb85dfceaa4f8c10b243cea07 (patch) | |
tree | 719e2c3a1732ab0cc82c32d560484b5740f40a05 /src/quicktemplates2/qquicktextfield.cpp | |
parent | 658b0f610a71fab8c103b913d2cfd11c3c7c6bef (diff) | |
parent | b3619f32c20b5851ada0826ec2e7ddc2ec8a210b (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.cpp | 17 |
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) |