71 lines
3.2 KiB
Markdown
71 lines
3.2 KiB
Markdown
# 功能变更 ID: Feature-20251220-0001
|
||
|
||
> 适用场景:记录小到中等规模的功能、接口、行为、默认值或配置变化。
|
||
> 不适用场景:新增核心模块、重大模块重构、架构级设计,请使用“新增功能模块”模板。
|
||
|
||
## 基本信息
|
||
|
||
- ID: Feature-20251220-0001
|
||
- 标题: Table 运行期重置表头与数据 API
|
||
- 状态:已完成(历史记录;本次仅归档,未重新验证)
|
||
- 类型:新增
|
||
- 级别:L2 中等
|
||
- 模块: Table
|
||
- 版本 / 分支: v2.3.2 / master
|
||
- 环境: Windows / Visual Studio 2022 / Debug、Release / EasyX
|
||
- 负责人: Ysm-04(历史实现)
|
||
|
||
## 变更背景
|
||
|
||
- 背景: 原有 Table 可以设置表头和数据,但缺少明确的运行期清空与整体重置入口。
|
||
- 目标: 允许同一个 Table 实例在运行过程中切换不同的数据集合,并在重置后重新计算单元格尺寸、分页信息和绘制状态。
|
||
- 不做什么:[可选]
|
||
- 不改变原有 `setHeaders()`、`setData()` 的调用方式。
|
||
- 不引入新的表格数据模型或外部依赖。
|
||
|
||
## 变更内容
|
||
|
||
- 变更摘要: 新增清空表头、清空数据以及同时清空二者的公共 API。
|
||
- 新增项:[可选]
|
||
- `void Table::clearHeaders()`
|
||
- `void Table::clearData()`
|
||
- `void Table::resetTable()`
|
||
- 修改项:[可选]
|
||
- 清空表头后,重新标记单元格尺寸、表头以及分页按钮/页码信息需要计算或绘制。
|
||
- 清空数据后,将 `currentPage`、`totalPages` 重置为 1,并重新标记尺寸和分页信息。
|
||
- `resetTable()` 依次复用 `clearHeaders()` 与 `clearData()`。
|
||
- 删除 / 废弃项:[可选]
|
||
- 无。
|
||
- 受影响的文件 / 类 / 函数:
|
||
- 历史路径:`include/StellarX/table.h`
|
||
- 历史路径:`src/table.cpp`
|
||
- `Table::clearHeaders()`、`Table::clearData()`、`Table::resetTable()`
|
||
- 对外 API / 属性变化:[可选]
|
||
- 新增上述三个公共方法;旧 API 保持不变。
|
||
|
||
## 行为对照
|
||
|
||
- 变更前: Table 创建后缺少专用的清空接口,调用方难以明确地复用同一对象展示另一组表头和数据。
|
||
- 变更后:
|
||
- `clearHeaders()` 清空表头并触发后续尺寸、表头和分页布局更新。
|
||
- `clearData()` 清空数据、复位页码状态并触发后续重算。
|
||
- `resetTable()` 同时清空表头与数据,调用方随后可重新设置内容。
|
||
- 兼容性说明:兼容
|
||
- 迁移说明:[可选]
|
||
- 无需迁移旧代码;需要复用 Table 时可在重新调用 `setHeaders()` / `setData()` 前使用新增接口。
|
||
|
||
## 验证与落地
|
||
|
||
- 验证方式:
|
||
- 历史记录使用按钮回调分别执行“清空并重设表头”“清空并重设数据”“同时清空并重设表头与数据”。
|
||
- 观察表头、数据、表格尺寸和分页区域是否同步更新。
|
||
- 验证结果:
|
||
- PDF 历史记录将上述三个手工场景记为通过。
|
||
- 本次归档未构建 v2.3.2,也未重新运行 GUI 用例;历史运行结果未在本次复验。
|
||
- 关联 BUG / Fix:[可选]
|
||
- Commit: `0c1cf2938f0d6c5684eeb318f17a8443e0c8cf5a`
|
||
- PR:[可选]
|
||
- 发布版本:[可选] v2.3.2
|
||
- 备注:[可选]
|
||
- 资料来源:`StellarX功能_模块变更.pdf` 第 19-21 页,并以对应提交和历史 `CHANGELOG.md` 交叉核对。
|