完成 StellarX 核心重构、缺陷修复与测试收口
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# 功能变更 ID: Feature-20260109-0001
|
||||
|
||||
> 适用场景:记录小到中等规模的功能、接口、行为、默认值或配置变化。
|
||||
> 不适用场景:新增核心模块、重大模块重构、架构级设计,请使用“新增功能模块”模板。
|
||||
|
||||
## 基本信息
|
||||
|
||||
- ID: Feature-20260109-0001
|
||||
- 标题: TabControl 页签切换时序调整
|
||||
- 状态:已完成(历史记录;本次仅归档,未重新验证)
|
||||
- 类型:修改
|
||||
- 级别:L2 中等
|
||||
- 模块: TabControl
|
||||
- 版本 / 分支: v3.0.0 / master
|
||||
- 环境: Windows 11 / Visual Studio 2022 / Debug、Release / EasyX
|
||||
- 负责人: Ysm-04(历史实现)
|
||||
|
||||
## 变更背景
|
||||
|
||||
- 背景: 原页签切换回调先显示目标页,再关闭其他页,在复杂容器和背景快照链路中可能短暂形成多页同时可见的状态。
|
||||
- 目标: 将切换顺序收敛为先停用原页,再激活目标页,降低重绘和快照时序的不确定性。
|
||||
- 不做什么:[可选]
|
||||
- 不改变 TabControl 的公共调用接口。
|
||||
- 不改变页签按钮与页面 Canvas 的配对模型。
|
||||
|
||||
## 变更内容
|
||||
|
||||
- 变更摘要: 调整 `TabControl::add()` 注册的 Toggle 回调执行顺序。
|
||||
- 新增项:[可选]
|
||||
- 激活日志记录原页索引、目标页索引和页签文本。
|
||||
- 修改项:[可选]
|
||||
- 激活目标页前,先找到当前可见页面并停用其他已点击页签。
|
||||
- 其他页签的 ToggleOff 回调负责隐藏对应页面。
|
||||
- 旧页停用后,再更新目标页布局、显示目标页并标记 TabControl 为脏。
|
||||
- 删除 / 废弃项:[可选]
|
||||
- 无。
|
||||
- 受影响的文件 / 类 / 函数:
|
||||
- 历史路径:`src/TabControl.cpp`
|
||||
- `TabControl::add()` 内的 ToggleOn / ToggleOff 回调
|
||||
- 对外 API / 属性变化:[可选]
|
||||
- 无,属于内部切换时序调整。
|
||||
|
||||
## 行为对照
|
||||
|
||||
- 变更前: 先显示目标页面,再遍历关闭其他页签和页面。
|
||||
- 变更后: 先通过其他页签的关闭回调隐藏旧页面,再显示并激活目标页面。
|
||||
- 兼容性说明:兼容
|
||||
- 迁移说明:[可选]
|
||||
- 调用方无需改动;若业务代码依赖切换过程中两个页面短暂同时可见的副作用,应移除该依赖。
|
||||
|
||||
## 验证与落地
|
||||
|
||||
- 验证方式:
|
||||
- 分别创建包含 3 个和 5 个页签的 TabControl,连续点击不同页签。
|
||||
- 检查日志顺序,确认旧页先关闭、目标页后激活。
|
||||
- 重复触发同一页签,观察激活和关闭行为。
|
||||
- 验证结果:
|
||||
- PDF 历史记录将 3 页签、5 页签和同页签重复触发场景记为正常。
|
||||
- 本次归档未重新构建 v3.0.0,也未运行 GUI 回归,因此不将历史手工观察视为当前版本验证结果。
|
||||
- 关联 BUG / Fix:[可选]
|
||||
- 与页签切换后的绘制一致性相关:[`BUG-20260109-0002-TabControl切换后Table新旧内容重叠.md`](../BUG/BUG-20260109-0002-TabControl切换后Table新旧内容重叠.md)
|
||||
- 后续修复记录:[`Fix-BUG-20260109-0002-TabControl切换后Table新旧内容重叠.md`](../Fix/Fix-BUG-20260109-0002-TabControl切换后Table新旧内容重叠.md)
|
||||
- Commit: `5cb59b36525cde93de83313551296c6458694110`
|
||||
- PR:[可选]
|
||||
- 发布版本:[可选] v3.0.0
|
||||
- 备注:[可选]
|
||||
- 资料来源:`StellarX功能_模块变更.pdf` 第 13-15 页,并以对应提交和历史 `CHANGELOG.md` 交叉核对。
|
||||
Reference in New Issue
Block a user