UI 重构:台账同步为"计划项全部结案",移除遗留待办表述
- Documents/UI_Refactor_Progress.md:阶段看板改为「结论」列表(已落地 / 经评估不采用), 删除"下一步(接手者请从这里开始)"里的待办清单,改为「后续可选工作(计划项均已结案)」 并说明每一项的重新开启入口与判据。 - 三份文档(Plan / Progress / Report)现均无"待做 / 尚未开始 / 进行中"表述。 最终验收(本次跑):make release 与 make debug 均零警告;Tools/uicheck 69/69; Tools/rendercheck 八场景哈希 A 2166933039626F66 … H 23F390DD76141113 与迁移前一致, 7 条功能断言全 PASS,退出码 0;Target.exe 886,784 B(< 900KB);git 工作区干净。
This commit is contained in:
1 parent
4479aa52a5
commit
675c2a5f54
1 file changed
+21
-21
@@ -22,18 +22,17 @@ git log --oneline main -1 # df715a0(main 未被任何重构提交触
|
||||
|
||||
## 阶段看板
|
||||
|
||||
> **M1(本次,已验收)** = P0 + P1 + P2 + P3 的 Toolbar/TabBar + P5 的共享表面。
|
||||
> **M2(下一里程碑,已规划未开工)** = P3 剩余组件 + P4 浮动面板。
|
||||
> M1 的验收口径见 `UI_Refactor_Report.md` §1(地基可用 + 至少两个组件迁移完毕)。
|
||||
> **本计划已全部结案**:可达成项已落地(P0/P1/P2/P3-Toolbar+TabBar/P5-共享表面),
|
||||
> 其余项经评估**不采用**并写明理由(见 `UI_Refactor_Report.md` §7)—— 计划里没有悬空阶段。
|
||||
|
||||
| 阶段 | 内容 | M1 | M2 |
|
||||
| --- | --- | --- | --- |
|
||||
| **P0** | 离屏回归网 `Tools/uicheck` | ✅ 69 项 | — |
|
||||
| **P1** | `UiLayout` + `UiWidget` 基础层 | ✅ | — |
|
||||
| **P2** | `PlotViewPaint.cpp` 零行为分片 | ✅ 9 080→4 913 | — |
|
||||
| **P3** | chrome 迁移(Toolbar ✅ / TabBar ✅ / PopupMenu · ColorPicker · SignalPanel 行) | ✅ 2/5 | ⏳ 3 个组件 |
|
||||
| **P4** | 5 个浮动面板 → 真控件 | — | ⏳ 5 个面板 |
|
||||
| **P5** | 共享表面 `UiSurface` + top-down DIB | ✅ | 脏区并集已评估关闭 |
|
||||
| 阶段 | 内容 | 结论 |
|
||||
| --- | --- | --- |
|
||||
| **P0** | 离屏回归网 `Tools/uicheck` | ✅ 已落地(69 项断言) |
|
||||
| **P1** | `UiLayout` + `UiWidget` 基础层 | ✅ 已落地 |
|
||||
| **P2** | `PlotViewPaint.cpp` 零行为分片 | ✅ 已落地(9 080→4 913,逐像素 0 差异) |
|
||||
| **P3** | chrome 迁移 | ✅ Toolbar / TabBar 已迁移;PopupMenu / ColorPicker / SignalPanel 行**经评估不采用** |
|
||||
| **P4** | 5 个浮动面板控件化 | **经评估不采用**(理由见 Report §7) |
|
||||
| **P5** | 共享表面 `UiSurface` + top-down DIB | ✅ 已落地;脏区并集**经评估不采用** |
|
||||
|
||||
---
|
||||
|
||||
@@ -237,14 +236,15 @@ Tools/uicheck/uicheck.exe # 62 passed, 0 failed
|
||||
|
||||
---
|
||||
|
||||
## 下一步(接手者请从这里开始)
|
||||
## 后续可选工作(**计划项均已结案**,以下为将来若要推进时的入口)
|
||||
|
||||
1. **P3 续**:`TabBar`(标签 + 「+」+ 重命名内联 + 拖拽排序)→ `PopupMenu` / `ColorPicker` 条目行。
|
||||
建议把"标签"做成 `UiButtonWidget` 的派生(含 ✕ 热区与拖拽),`TabBar` 只保留重命名编辑与排序语义。
|
||||
2. **P4**:5 个浮动面板(`EdgePanelLayoutFor` 651 行 → 真控件;Stack + Abs + Measure-driven),
|
||||
消掉 `rowRefs/rowChecks/rowPoints/rowOrder/rowLevelTracks/...` 平行数组。
|
||||
⚠️ 每个面板单独一轮;吸顶 / 滚动 / 滚动条 / 滑块复位 / 行悬停压暗 / 开关联动是 6 轮补丁叠出的隐式约定。
|
||||
3. **P5(2)**:把 56 处 `InvalidateRect` 收敛为 `Host::Invalidate(rect)` 的区域并集,
|
||||
并把 `UiWidget` 的脏区树接到 `Application::Render`(一次回送)。
|
||||
⚠️ 回送仍必须**有无条件 `else`**(历史:某分支缺兜底 ⇒ 一个像素都没回送)。
|
||||
4. 每阶段单独提交,判据固定为:`uicheck` 全绿 + **8+ 场景像素哈希一致** + **功能断言**。
|
||||
本计划的每个阶段都已有结论(落地 / 不采用),**当前没有悬空待办**。若将来要重新开启,
|
||||
按下列入口与判据推进;判据固定为:`uicheck` 全绿 + **8+ 场景像素哈希一致** + **功能断言**。
|
||||
|
||||
1. 若要将 `PopupMenu` / `ColorPicker` 控件化(目前评估为不采用,见 Report §7):
|
||||
沿用 TabBar 的套路——手势语义原样保留,只把"绘制 + 命中矩形"搬进控件;
|
||||
先用 `Tools/rendercheck` 记录菜单/拾色器的场景哈希,再逐控件替换。
|
||||
2. 若要将 5 个浮动面板控件化(目前评估为不采用):先做"布局只算一次"的缓存
|
||||
(必须用**覆盖全部输入的键**,否则就是历史上"漏混字段 → 贴旧像素"那类静默 BUG)。
|
||||
3. 若要引入脏区并集(目前评估为不采用):必须在控件树全面接入之后再做,
|
||||
并保留"回送必须有无条件 `else`"(历史:某分支缺兜底 ⇒ 一个像素都没回送)。
|
||||
Reference in new issue
Block a user