38fbd4b465d635d1be0a598ad834aaf3d3d1b254
背景:Code Review 报告 §12.7 建议 2。`PaintEdgeCursor` 原本约 1900 行,其中 "按面板排版类别绘制内容"占 1000 行以上,三段(表格 / 列表 / 自由标记)几乎互不相干, 却共享同一个函数的全部局部变量 —— 任何一段的改动都要在 1900 行里定位, 且很容易误用另一段的变量。 改动 * 新增 `Components/PlotView/Src/PlotViewPanelPaint.cpp`(1016 行,机械搬移、零逻辑改动): * `PaintPanelCountTableRows` —— 边沿计数表格:固定表头 + 可滚动数据行。 * `PaintPanelListRows` —— 列表式:条目栏 + 展开后的参数行(均值/中心轴/弱峰/重采样/截取)。 * `PaintPanelMarkerGroups` —— 自由标记:分组栏 + 表头 + 条目 + 吸顶。 每个函数**只接收它真正需要的东西**(`layout` + `tabLane` + 少数几个参数), 不再"整个函数都看得见"。 * `PaintEdgeCursor` 从 1900 → 约 900 行;三处块替换为一行调用, 骨架(边框 / 标题栏 / 折起三角 / GX 徽标 / ✕)与底部按钮**仍留在一处**(对所有面板同源)。 * 滚条绘制抽为 `pvdetail::PaintPanelScrollBar(g, layout, theme)`(三个分支共用)。 顺带修掉报告里承诺但未落地的一处 * `PaintEdgeCursor` 的标题仍是 7 层三元式,与 `EdgePanelWidth` 里**另一条**链并存 (那条漏了 MARK/CLIP)。现统一为 `PanelTitle(kind)` 唯一来源。 验证(像素基线全部不变,证明是纯搬移) * `panels -mode compare` → 7 个面板像素哈希 + 几何**逐项不变**。 * `OffscreenChecks -all` → 6/6 PASS,`checks=108 failed=0`。 * `UnitTests` → `checks=260 failed=0`。 * `panelscroll`(MF4,566 信号)→ 6/7 面板可滚,行为不变。 * release 全量零 error / 零 warning;产物 786,944 → **786,432 B**(−512)。
Languages
C++
99.5%
Makefile
0.5%