diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-06-27 11:07:32 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-06-27 08:20:21 +0000 |
commit | a627d43d39bc17e7144fda724cb41d944bded6a5 (patch) | |
tree | c97295d54b95e28f0ace21b224fa0d98555c06ca | |
parent | 21ef02a016f7921fab8f72e3fcea2147bb2cd018 (diff) |
QmlDesigner: Fix crash on mode change
Added model pointer validity checks into a few places.
Fixes: QDS-7191
Change-Id: I94beb134f4d9a0b1c7fc9dc87da1d02ad255beaa
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index 2a06d5acbc..2d02ba1276 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -290,6 +290,8 @@ void MaterialBrowserView::instancesCompleted(const QVector<ModelNode> &completed if (node.isRootNode()) { m_puppetResetPending = false; QTimer::singleShot(1000, this, [this]() { + if (!model() || !model()->nodeInstanceView()) + return; const QList<ModelNode> materials = m_widget->materialBrowserModel()->materials(); for (const ModelNode &node : materials) model()->nodeInstanceView()->previewImageDataForGenericNode(node, {}); diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp index 8b3d693274..d86ef1463b 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp @@ -416,6 +416,8 @@ void MaterialEditorView::handleToolBarAction(int action) } case MaterialEditorContextObject::AddNewMaterial: { + if (!model()) + break; executeInTransaction("MaterialEditorView:handleToolBarAction", [&] { NodeMetaInfo metaInfo = model()->metaInfo("QtQuick3D.DefaultMaterial"); ModelNode newMatNode = createModelNode("QtQuick3D.DefaultMaterial", metaInfo.majorVersion(), @@ -634,7 +636,7 @@ void MaterialEditorView::auxiliaryDataChanged(const ModelNode &node, const Prope // request render image for the selected material node void MaterialEditorView::requestPreviewRender() { - if (m_selectedMaterial.isValid()) + if (model() && model()->nodeInstanceView() && m_selectedMaterial.isValid()) model()->nodeInstanceView()->previewImageDataForGenericNode(m_selectedMaterial, {}); } @@ -740,6 +742,9 @@ void MaterialEditorView::duplicateMaterial(const ModelNode &material) { QTC_ASSERT(material.isValid(), return); + if (!model()) + return; + TypeName matType = material.type(); QmlObjectNode sourceMat(material); |