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

@@ -77,11 +77,16 @@ EditCommandTarget BuildEditCommandTarget(
} // namespace
bool EditorProjectRuntime::Initialize(const std::filesystem::path& repoRoot) {
m_browserModel.Initialize(repoRoot);
m_ownedSelectionService = {};
void EditorProjectRuntime::Reset() {
m_browserModel.Reset();
m_ownedSelectionService.ClearSelection();
m_selectionService = &m_ownedSelectionService;
m_pendingSceneOpenPath.reset();
}
bool EditorProjectRuntime::Initialize(const std::filesystem::path& repoRoot) {
Reset();
m_browserModel.Initialize(repoRoot);
return true;
}
@@ -91,10 +96,6 @@ void EditorProjectRuntime::BindSelectionService(
selectionService != nullptr ? selectionService : &m_ownedSelectionService;
}
void EditorProjectRuntime::SetFolderIcon(const ::XCEngine::UI::UITextureHandle& icon) {
m_browserModel.SetFolderIcon(icon);
}
void EditorProjectRuntime::Refresh() {
m_browserModel.Refresh();
RevalidateSelection();