new_editor: isolate project panel state and harden runtime reset

This commit is contained in:
2026-04-22 00:19:35 +08:00
parent fff33185b9
commit 8bfca5e8f2
11 changed files with 144 additions and 61 deletions

View File

@@ -60,12 +60,12 @@ bool EditorContext::Initialize(const std::filesystem::path& repoRoot) {
m_session.projectRoot = (repoRoot / "project").lexically_normal();
m_commandFocusService = {};
m_selectionService = {};
m_projectRuntime = {};
m_projectRuntime.Reset();
AppendUIEditorRuntimeTrace("startup", "EditorProjectRuntime::Initialize begin");
m_projectRuntime.Initialize(repoRoot);
AppendUIEditorRuntimeTrace("startup", "EditorProjectRuntime::Initialize end");
m_projectRuntime.BindSelectionService(&m_selectionService);
m_sceneRuntime = {};
m_sceneRuntime.Reset();
AppendUIEditorRuntimeTrace("startup", "EditorSceneRuntime::Initialize begin");
m_sceneRuntime.Initialize(m_session.projectRoot);
AppendUIEditorRuntimeTrace("startup", "EditorSceneRuntime::Initialize end");
@@ -80,6 +80,8 @@ bool EditorContext::Initialize(const std::filesystem::path& repoRoot) {
m_shellServices = {};
m_shellServices.commandDispatcher = &m_shortcutManager.GetCommandDispatcher();
m_shellServices.shortcutManager = &m_shortcutManager;
m_lastStatus.clear();
m_lastMessage.clear();
SetReadyStatus();
AppendUIEditorRuntimeTrace("startup", "EditorContext::Initialize end");
return true;