From e46c8740a323c5fe788de89d8225b2127bdb44e8 Mon Sep 17 00:00:00 2001 From: Ali Kianian Date: Tue, 15 Oct 2024 12:23:32 +0300 Subject: [PATCH] QmlDesigner: Check the existence of the view for the Camera View For making sure that the scene is available, we should check both of the following nodes: * Scene manager * A scene root node among ancestors Fixes: QDS-13671 Change-Id: I7439727193b51e80a0500f8aab5a86c5c84d7f02 Reviewed-by: Miikka Heikkinen --- .../qml2puppet/qml2puppet/editor3d/generalhelper.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp index 4d57c0d1646..19c50cfba0a 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp @@ -704,7 +704,16 @@ bool GeneralHelper::isSceneObject(QQuick3DNode *node) const const QQuick3DObject *sceneObject = importSceneManager->m_nodeMap.value(objectPrivate->spatialNode, nullptr); - return sceneObject != nullptr; + if (!sceneObject) + return false; + + QQuick3DNode *parentNode = node->parentNode(); + while (parentNode) { + if (parentNode->inherits("QQuick3DSceneRootNode")) + return true; + parentNode = parentNode->parentNode(); + } + return false; } // Emitter gizmo model creation is done in C++ as creating dynamic properties and