Files
XCEngine/docs/api/XCEngine/Editor/Actions/ProjectActionRouter/ProjectActionRouter.md

1.9 KiB
Raw Blame History

ProjectActionRouter

命名空间: XCEngine::Editor::Actions

类型: header-helper

源文件: editor/src/Actions/ProjectActionRouter.h

描述: 封装 Project 面板中的资源选择、导航、拖放、上下文菜单和创建文件夹弹窗流程。

概述

ProjectActionRouterProjectPanel.cpp 可以专注于资源网格布局,而把交互行为集中管理。当前覆盖的能力包括:

  • 资源项选中与右键上下文菜单
  • 文件夹打开与返回上级导航
  • 资源拖放到目录
  • 空白区域上下文菜单
  • “Create Folder” 弹窗与提交

当前实现

  • 资源拖拽载荷类型固定为 "ASSET_ITEM"
  • 打开资源时只支持两类:文件夹与 type == "Scene" 的资源
  • 删除资源调用 DeleteAsset
  • 移动资源调用 MoveAssetToFolder
  • 创建目录弹窗依赖 TextInputPopupState

FindProjectItemIndex 还额外做了 fullPath 匹配,这说明当前实现允许在某些刷新路径下通过值语义重新定位资源项,而不是完全依赖共享指针地址。

设计说明

Project 面板本质上是一个资产浏览器。
把这些动作单独放在 router 层,有助于把以下两类变化隔开:

  • 视觉变化:列表改网格、加图标、加搜索、加分栏
  • 交互语义变化:打开、删除、移动、创建目录

这样后续即使 Project 面板彻底重画 UI动作语义仍然可以稳定保留。

当前限制

  • 当前资源系统没有更细的资源类型分发,场景之外的资源多数只能展示,不能打开
  • 资源重命名、复制、粘贴尚未实现
  • 没有回收站、删除确认和批量操作

相关文档