Move project services out of editor features

This commit is contained in:
2026-04-27 14:19:52 +08:00
parent 8ebbd5d633
commit c0b829cd6a
12 changed files with 59 additions and 60 deletions

View File

@@ -7,7 +7,7 @@
#include <cmath>
#include <string_view>
#include "System/SystemInteractionService.h"
#include "Project/EditorProjectRuntime.h"
#include "Services/Project/EditorProjectRuntime.h"
#include "State/EditorCommandFocusService.h"
#include <XCEditor/Fields/UIEditorFieldStyle.h>
#include <XCEditor/Foundation/UIEditorPanelInputFilter.h>
@@ -372,10 +372,18 @@ void ProjectPanel::RebuildWindowTreeItems() {
return;
}
m_windowTreeItems = GetBrowserModel().GetTreeItems();
const UITextureHandle folderIcon = ResolveFolderIcon(m_icons);
for (Widgets::UIEditorTreeViewItem& item : m_windowTreeItems) {
const std::vector<FolderEntry>& folderEntries =
GetBrowserModel().GetFolderEntries();
m_windowTreeItems.reserve(folderEntries.size());
for (const FolderEntry& folderEntry : folderEntries) {
Widgets::UIEditorTreeViewItem item = {};
item.itemId = folderEntry.itemId;
item.label = folderEntry.label;
item.depth = folderEntry.depth;
item.forceLeaf = !folderEntry.hasChildFolders;
item.leadingIcon = folderIcon;
m_windowTreeItems.push_back(std::move(item));
}
}
@@ -1660,7 +1668,7 @@ void ProjectPanel::Update(
return;
}
if (GetBrowserModel().GetTreeItems().empty()) {
if (GetBrowserModel().GetFolderEntries().empty()) {
ResolveProjectRuntime()->Refresh();
SyncSelectionsFromRuntime();
}