aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2020-12-30 14:50:49 +0200
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2021-01-05 09:28:45 +0000
commitbab69fff777b56c4fe9385d915eb717e379a0e8d (patch)
tree6173b455cf01ec4c1622e981eb99b73d619e72e2 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
parent55ca28f1c7193d87e0b3c94f5887bd1e65ccac6a (diff)
QmlPuppet: Fix crash at puppet reset
Puppet cleanup was not handled properly, so derefFromEffectItem() was not called for all objects that needed it, causing puppet to crash at shutdown. Fixes: QDS-3461 Change-Id: I22c0552fe1223789fa42b276ab377d4a9e929955 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
index 81607cbdd6..ee74ab856c 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
@@ -59,8 +59,15 @@ QuickItemNodeInstance::QuickItemNodeInstance(QQuickItem *item)
QuickItemNodeInstance::~QuickItemNodeInstance()
{
- if (quickItem() && checkIfRefFromEffect(instanceId()))
- designerSupport()->derefFromEffectItem(quickItem());
+}
+
+void QuickItemNodeInstance::handleObjectDeletion(QObject *object)
+{
+ auto item = qobject_cast<QQuickItem *>(object);
+ if (item && checkIfRefFromEffect(instanceId()))
+ designerSupport()->derefFromEffectItem(item);
+
+ ObjectNodeInstance::handleObjectDeletion(object);
}
static bool isContentItem(QQuickItem *item, NodeInstanceServer *nodeInstanceServer)