new_editor: isolate project panel state and harden runtime reset
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user