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/qquicktextarea.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/qquicktextarea.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktextarea.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp index 7c2e0f11..92c85941 100644 --- a/src/quicktemplates2/qquicktextarea.cpp +++ b/src/quicktemplates2/qquicktextarea.cpp @@ -388,6 +388,14 @@ QAccessible::Role QQuickTextAreaPrivate::accessibleRole() const } #endif +void QQuickTextAreaPrivate::deleteDelegate(QObject *delegate) +{ + if (componentComplete) + delete delegate; + else + pendingDeletions.append(delegate); +} + QFont QQuickTextArea::font() const { return QQuickTextEdit::font(); @@ -426,7 +434,7 @@ void QQuickTextArea::setBackground(QQuickItem *background) if (d->background == background) return; - delete d->background; + d->deleteDelegate(d->background); d->background = background; if (background) { background->setParentItem(this); @@ -571,6 +579,9 @@ void QQuickTextArea::componentComplete() if (!d->accessibleAttached && QAccessible::isActive()) d->accessibilityActiveChanged(true); #endif + + qDeleteAll(d->pendingDeletions); + d->pendingDeletions.clear(); } void QQuickTextArea::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) |