Refine project panel runtime ownership

This commit is contained in:
2026-04-28 15:24:47 +08:00
parent cd166037bf
commit 02eafc2bac
5 changed files with 56 additions and 71 deletions

View File

@@ -143,8 +143,10 @@ UIEditorHostedPanelDispatchEntry MakeProjectDispatchEntry() {
TEST(ProjectPanelTests, CreateFolderCommandCreatesDirectoryAndQueuesRename) {
TemporaryRepo repo = {};
EditorProjectRuntime runtime = {};
ASSERT_TRUE(runtime.Initialize(repo.Root() / "project"));
ProjectPanel panel = {};
panel.Initialize(repo.Root() / "project");
panel.SetProjectRuntime(&runtime);
const UIEditorHostCommandEvaluationResult evaluation =
panel.EvaluateAssetCommand("assets.create_folder");
@@ -168,8 +170,10 @@ TEST(ProjectPanelTests, CreateFolderCommandCreatesDirectoryAndQueuesRename) {
TEST(ProjectPanelTests, CreateMaterialCommandCreatesFileAndQueuesRename) {
TemporaryRepo repo = {};
EditorProjectRuntime runtime = {};
ASSERT_TRUE(runtime.Initialize(repo.Root() / "project"));
ProjectPanel panel = {};
panel.Initialize(repo.Root() / "project");
panel.SetProjectRuntime(&runtime);
const UIEditorHostCommandEvaluationResult evaluation =
panel.EvaluateAssetCommand("assets.create_material");
@@ -191,8 +195,10 @@ TEST(ProjectPanelTests, CreateMaterialCommandCreatesFileAndQueuesRename) {
TEST(ProjectPanelTests, BackgroundContextMenuCreateFolderUsesCurrentFolder) {
TemporaryRepo repo = {};
EditorProjectRuntime runtime = {};
ASSERT_TRUE(runtime.Initialize(repo.Root() / "project"));
ProjectPanel panel = {};
panel.Initialize(repo.Root() / "project");
panel.SetProjectRuntime(&runtime);
const UIEditorHostedPanelDispatchEntry dispatchEntry = MakeProjectDispatchEntry();
panel.Update(
@@ -218,8 +224,10 @@ TEST(ProjectPanelTests, FolderContextMenuCreateFolderUsesFolderTarget) {
TemporaryRepo repo = {};
ASSERT_TRUE(std::filesystem::create_directories(repo.Root() / "project/Assets/FolderA"));
EditorProjectRuntime runtime = {};
ASSERT_TRUE(runtime.Initialize(repo.Root() / "project"));
ProjectPanel panel = {};
panel.Initialize(repo.Root() / "project");
panel.SetProjectRuntime(&runtime);
const UIEditorHostedPanelDispatchEntry dispatchEntry = MakeProjectDispatchEntry();
panel.Update(
@@ -283,7 +291,9 @@ TEST(ProjectPanelTests, IconServiceCanBeConfiguredBeforeRuntimeInitialization) {
FakeIconService icons = {};
panel.SetIconService(&icons);
panel.Initialize(repo.Root() / "project");
EditorProjectRuntime runtime = {};
ASSERT_TRUE(runtime.Initialize(repo.Root() / "project"));
panel.SetProjectRuntime(&runtime);
const UIEditorHostCommandEvaluationResult evaluation =
panel.EvaluateAssetCommand("assets.create_folder");