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

@@ -170,6 +170,8 @@ private:
bool HasProjectRuntime() const;
BrowserModel& GetBrowserModel();
const BrowserModel& GetBrowserModel() const;
void RebuildWindowTreeItems();
const std::vector<Widgets::UIEditorTreeViewItem>& GetWindowTreeItems() const;
const FolderEntry* FindFolderEntry(std::string_view itemId) const;
const AssetEntry* FindAssetEntry(std::string_view itemId) const;
AssetCommandTarget ResolveAssetCommandTarget(
@@ -246,6 +248,7 @@ private:
Ports::SystemInteractionPort* m_systemInteractionHost = nullptr;
BuiltInIcons* m_icons = nullptr;
const ::XCEngine::UI::Editor::UIEditorTextMeasurer* m_textMeasurer = nullptr;
std::vector<Widgets::UIEditorTreeViewItem> m_windowTreeItems = {};
::XCEngine::UI::Widgets::UISelectionModel m_folderSelection = {};
::XCEngine::UI::Widgets::UIExpansionModel m_folderExpansion = {};
::XCEngine::UI::Widgets::UISelectionModel m_assetSelection = {};