diff options
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) |