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

2.0 KiB

ConsoleActionRouter

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

类型: header-helper

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

描述: 为 Console 面板提供工具栏动作和日志列表绘制逻辑。

概述

ConsoleActionRouter 目前主要负责两件事:

  • DrawConsoleToolbarActions 绘制清空按钮和 Info / Warn / Error 过滤切换
  • DrawConsoleLogRows 读取 EditorConsoleSink 中的日志,并按过滤条件输出到面板

ConsolePanel.cpp 只负责搭窗口和滚动区域,真正的交互逻辑由这层统一承接。这样 Console 面板本身会保持很薄,不会把过滤策略、日志格式化和按钮语义都堆在一个类里。

当前实现

设计说明

这层拆分的价值在于把“日志存储”和“日志呈现”分开:

  • EditorConsoleSink 关注线程安全和日志缓存
  • ConsoleActionRouter 关注工具栏与列表交互
  • UI 辅助函数负责外观和文本格式

这种分层比直接在 ConsolePanel::Render 中处理全部逻辑更容易维护,也更接近商业级编辑器里常见的 presenter / controller 风格。

当前限制

  • 当前过滤粒度只有三档:信息、警告、错误
  • 没有搜索、分类树、时间戳列或堆栈追踪展开
  • GetLogs() 会复制整个日志数组,日志量继续增大后可能需要增量视图或虚拟列表

相关文档