diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-12-30 14:50:49 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2021-01-05 09:28:45 +0000 |
commit | bab69fff777b56c4fe9385d915eb717e379a0e8d (patch) | |
tree | 6173b455cf01ec4c1622e981eb99b73d619e72e2 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | |
parent | 55ca28f1c7193d87e0b3c94f5887bd1e65ccac6a (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.cpp | 11 |
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) |