From 7f9ca35e752365333b3aed19ed5b53dad3cf0ac0 Mon Sep 17 00:00:00 2001 From: Evgeny Prikazchikov Date: Mon, 20 Jul 2026 17:36:01 +0300 Subject: [PATCH] Editor: Remove Component leads to a crash #1377 --- .../screens/scenecomposer/actions/deleteobjects.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/worldeditor/src/screens/scenecomposer/actions/deleteobjects.cpp b/worldeditor/src/screens/scenecomposer/actions/deleteobjects.cpp index 00e1afc89..2c276b969 100644 --- a/worldeditor/src/screens/scenecomposer/actions/deleteobjects.cpp +++ b/worldeditor/src/screens/scenecomposer/actions/deleteobjects.cpp @@ -72,6 +72,7 @@ void DeleteObjects::redo() { m_cloneCache.clear(); std::list list; + bool isComponent = false; for(auto it : m_objects) { Object *object = Engine::findObject(it); @@ -86,6 +87,7 @@ void DeleteObjects::redo() { } else { Component *component = dynamic_cast(object); if(component) { + isComponent = true; scenes.insert(component->scene()); } } @@ -121,8 +123,10 @@ void DeleteObjects::redo() { } } - m_controller->clear(); - m_controller->selectActors(list); + if(!isComponent) { + m_controller->clear(); + m_controller->selectActors(list); + } for(auto it : m_objects) { Object *object = Engine::findObject(it); @@ -131,6 +135,10 @@ void DeleteObjects::redo() { } } + if(isComponent) { + m_controller->selectActors(list); + } + for(auto it : scenes) { emit m_controller->sceneUpdated(it); }