2.4 KiB
2.4 KiB
ConsoleActionRouter
命名空间: XCEngine::Editor::Actions
类型: header-helper
源文件: editor/src/Actions/ConsoleActionRouter.h
描述: 为 Console 面板提供一组轻量 toolbar/action helper;当前保留基础控制台动作绑定,但已不再承载完整 Console 面板渲染主路径。
概述
ConsoleActionRouter 当前主要提供两类内联 helper:
DrawConsoleToolbarActions绘制清空按钮和 Info / Warn / Error 过滤切换DrawConsoleLogRows读取EditorConsoleSink中的日志,并按过滤条件输出到面板
但需要注意,ConsolePanel.cpp 当前已经演化出比这组 helper 更完整的控制台工作流:
- play mode 事件订阅
- search + collapse 聚合
- 键盘选择与复制
- splitter 和详情区
- error pause 扫描
也就是说,这个 header 现在更像“保留的轻量动作 helper”,而不是 Console 面板的唯一 presenter 层。
当前实现
- 数据源固定为
EditorConsoleSink - 过滤状态由
ConsoleFilterState持有 DrawConsoleToolbarActions(...)当前会绘制:ClearCollapseClear on PlayError Pause- log / warning / error filter
DrawConsoleLogRows(...)当前会遍历 sink 的日志副本,按过滤状态输出基础文本行
设计说明
这层拆分的价值仍然在于把“日志存储”和“基础动作 helper”从面板类里分离出来:
EditorConsoleSink关注线程安全和日志缓存ConsoleActionRouter关注一小组可复用的工具栏与列表 helperUI辅助函数负责外观和文本格式
但按当前版本,完整的 Console 面板交互已经不再只依赖这里;文档和调用方都不应把它误解成现行主渲染入口。
当前限制
- 这里只覆盖较基础的 helper,当前并不表达
ConsolePanel全部行为。 DrawConsoleLogRows(...)仍基于简单遍历日志副本的方式,不包含当前ConsolePanel里的搜索、折叠聚合、详情区和 source opening 流程。