From 8b1233c11ef0b53647784d1d3afa2bd7fda833ad Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Thu, 15 Dec 2022 14:38:59 +0100 Subject: [PATCH] QmlDesigner: Fix mode switch crash Task-number: QDS-8599 Change-Id: I4bebd2ff4f2ce93788743304ff335d118e23ce68 Reviewed-by: Thomas Hartmann --- .../qmldesigner/designercore/instances/nodeinstanceview.cpp | 3 ++- src/plugins/qmldesigner/designercore/model/abstractview.cpp | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index 661b303a940..a1025cc9aa4 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -136,7 +136,8 @@ NodeInstanceView::NodeInstanceView(ConnectionManagerInterface &connectionManager m_resetTimer.setSingleShot(true); m_resetTimer.setInterval(100); QObject::connect(&m_resetTimer, &QTimer::timeout, [this] { - resetPuppet(); + if (isAttached()) + resetPuppet(); }); m_updateWatcherTimer.setSingleShot(true); m_updateWatcherTimer.setInterval(100); diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index 20d39362a0e..50497c58359 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -559,6 +559,7 @@ void AbstractView::resetView() void AbstractView::resetPuppet() { + QTC_ASSERT(isAttached(), return); emitCustomNotification(QStringLiteral("reset QmlPuppet")); } @@ -689,7 +690,8 @@ void AbstractView::emitCustomNotification(const QString &identifier, const QList void AbstractView::emitCustomNotification(const QString &identifier, const QList &nodeList, const QList &data) { - model()->d->notifyCustomNotification(this, identifier, nodeList, data); + if (model()) + model()->d->notifyCustomNotification(this, identifier, nodeList, data); } void AbstractView::emitInstancePropertyChange(const QList > &propertyList)