1.9 KiB
1.9 KiB
ProjectActionRouter
命名空间: XCEngine::Editor::Actions
类型: header-helper
源文件: editor/src/Actions/ProjectActionRouter.h
描述: 封装 Project 面板中的资源选择、导航、拖放、上下文菜单和创建文件夹弹窗流程。
概述
ProjectActionRouter 让 ProjectPanel.cpp 可以专注于资源网格布局,而把交互行为集中管理。当前覆盖的能力包括:
- 资源项选中与右键上下文菜单
- 文件夹打开与返回上级导航
- 资源拖放到目录
- 空白区域上下文菜单
- “Create Folder” 弹窗与提交
当前实现
- 资源拖拽载荷类型固定为
"ASSET_ITEM" - 打开资源时只支持两类:文件夹与
type == "Scene"的资源 - 删除资源调用
DeleteAsset - 移动资源调用
MoveAssetToFolder - 创建目录弹窗依赖
TextInputPopupState
FindProjectItemIndex 还额外做了 fullPath 匹配,这说明当前实现允许在某些刷新路径下通过值语义重新定位资源项,而不是完全依赖共享指针地址。
设计说明
Project 面板本质上是一个资产浏览器。
把这些动作单独放在 router 层,有助于把以下两类变化隔开:
- 视觉变化:列表改网格、加图标、加搜索、加分栏
- 交互语义变化:打开、删除、移动、创建目录
这样后续即使 Project 面板彻底重画 UI,动作语义仍然可以稳定保留。
当前限制
- 当前资源系统没有更细的资源类型分发,场景之外的资源多数只能展示,不能打开
- 资源重命名、复制、粘贴尚未实现
- 没有回收站、删除确认和批量操作