42 lines
1.2 KiB
Markdown
42 lines
1.2 KiB
Markdown
|
|
# ProjectPanel
|
|||
|
|
|
|||
|
|
**命名空间**: `XCEngine::Editor`
|
|||
|
|
|
|||
|
|
**类型**: `class`
|
|||
|
|
|
|||
|
|
**源文件**: `editor/src/panels/ProjectPanel.h`
|
|||
|
|
|
|||
|
|
**描述**: 项目面板,负责展示当前资产目录、面包屑导航、搜索、资产瓦片交互以及文件夹创建与上下文菜单。
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
`ProjectPanel` 当前是 [ProjectManager](../../Managers/ProjectManager/ProjectManager.md) 的主要 UI 前端。
|
|||
|
|
|
|||
|
|
它负责:
|
|||
|
|
|
|||
|
|
- 初始化项目浏览器
|
|||
|
|
- 绘制工具栏与面包屑
|
|||
|
|
- 绘制资产网格
|
|||
|
|
- 搜索过滤
|
|||
|
|
- 资产点击、打开、拖放和右键菜单
|
|||
|
|
- 空白区域上下文菜单
|
|||
|
|
- 新建文件夹弹窗
|
|||
|
|
|
|||
|
|
## 当前实现说明
|
|||
|
|
|
|||
|
|
- `Initialize(projectPath)` 直接调用 `m_context->GetProjectManager().Initialize(projectPath)`。
|
|||
|
|
- `Render()` 中资产会按自适应列数排成网格。
|
|||
|
|
- 搜索当前按名字子串过滤。
|
|||
|
|
- 资产图标当前按 `isFolder` 区分 folder/file,再配合 action/router 决定交互。
|
|||
|
|
|
|||
|
|
## 当前实现边界
|
|||
|
|
|
|||
|
|
- 当前搜索是前端过滤,不是索引搜索。
|
|||
|
|
- 资产预览目前还是轻量瓦片,不是完整导入数据库浏览器。
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [panels](../panels.md)
|
|||
|
|
- [ProjectManager](../../Managers/ProjectManager/ProjectManager.md)
|
|||
|
|
- [AssetItem](../../Core/AssetItem/AssetItem.md)
|