From 51eff608eb18b01d36fdab442930300a4af3df20 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 2 Feb 2017 15:16:08 +0100 Subject: Cancel incubation of replaced/destroyed delegates Resolves the "Object destroyed during incubation" issues. Task-number: QTBUG-50992 Change-Id: Ie58c958dafbf915da7494dac25351be98106c6ea Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquicktextfield.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'src/quicktemplates2/qquicktextfield.cpp') diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp index 36c284f0..ec46b15c 100644 --- a/src/quicktemplates2/qquicktextfield.cpp +++ b/src/quicktemplates2/qquicktextfield.cpp @@ -263,18 +263,6 @@ 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 if (delegate) - pendingDeletions.append(delegate); -} - QQuickTextField::QQuickTextField(QQuickItem *parent) : QQuickTextInput(*(new QQuickTextFieldPrivate), parent) { @@ -326,7 +314,7 @@ void QQuickTextField::setBackground(QQuickItem *background) if (d->background == background) return; - d->deleteDelegate(d->background); + QQuickControlPrivate::destroyDelegate(d->background, this); d->background = background; if (background) { background->setParentItem(this); @@ -480,9 +468,6 @@ 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) -- cgit v1.2.3