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

@@ -2,8 +2,6 @@
#include <XCEditor/Collections/UIEditorTreeView.h>
#include <XCEngine/UI/Types.h>
#include <cstdint>
#include <filesystem>
#include <optional>
@@ -49,8 +47,14 @@ public:
bool canPreview = false;
};
ProjectBrowserModel() = default;
ProjectBrowserModel(const ProjectBrowserModel&) = default;
ProjectBrowserModel& operator=(const ProjectBrowserModel&) = default;
ProjectBrowserModel(ProjectBrowserModel&&) noexcept = default;
ProjectBrowserModel& operator=(ProjectBrowserModel&&) noexcept = default;
void Reset();
void Initialize(const std::filesystem::path& repoRoot);
void SetFolderIcon(const ::XCEngine::UI::UITextureHandle& icon);
void Refresh();
bool Empty() const;
@@ -110,7 +114,6 @@ private:
std::vector<FolderEntry> m_folderEntries = {};
std::vector<Widgets::UIEditorTreeViewItem> m_treeItems = {};
std::vector<AssetEntry> m_assetEntries = {};
::XCEngine::UI::UITextureHandle m_folderIcon = {};
std::string m_currentFolderId = {};
};