完成 StellarX 核心重构、缺陷修复与测试收口
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# 功能变更 ID: Feature-20251220-0002
|
||||
|
||||
> 适用场景:记录小到中等规模的功能、接口、行为、默认值或配置变化。
|
||||
> 不适用场景:新增核心模块、重大模块重构、架构级设计,请使用“新增功能模块”模板。
|
||||
|
||||
## 基本信息
|
||||
|
||||
- ID: Feature-20251220-0002
|
||||
- 标题: TextBox 密码模式
|
||||
- 状态:已完成(历史记录;本次仅归档,未重新验证)
|
||||
- 类型:新增
|
||||
- 级别:L2 中等
|
||||
- 模块: TextBox / CoreTypes
|
||||
- 版本 / 分支: v2.3.2 / master
|
||||
- 环境: Windows / Visual Studio 2022 / Debug、Release / EasyX
|
||||
- 负责人: Ysm-04(历史实现)
|
||||
|
||||
## 变更背景
|
||||
|
||||
- 背景: TextBox 原有输入模式会直接绘制用户输入,不适合密码等需要隐藏显示内容的场景。
|
||||
- 目标: 保存真实输入值,但在界面上使用掩码字符显示,并允许调用方通过 `getText()` 获取原始文本。
|
||||
- 不做什么:[可选]
|
||||
- 不提供密码加密、散列、数据库校验或安全存储能力。
|
||||
- 不改变既有输入模式的行为。
|
||||
|
||||
## 变更内容
|
||||
|
||||
- 变更摘要: 为 `TextBoxmode` 增加 `PASSWORD_MODE`,并在 TextBox 输入和绘制路径中处理该模式。
|
||||
- 新增项:[可选]
|
||||
- `StellarX::TextBoxmode::PASSWORD_MODE`
|
||||
- 修改项:[可选]
|
||||
- `TextBox::draw()` 在密码模式下构造掩码文本并绘制掩码,不直接绘制真实内容。
|
||||
- `TextBox::handleEvent()` 在密码模式下获取输入并保存真实文本。
|
||||
- 删除 / 废弃项:[可选]
|
||||
- 无。
|
||||
- 受影响的文件 / 类 / 函数:
|
||||
- 历史路径:`include/StellarX/CoreTypes.h`
|
||||
- 历史路径:`src/textBox.cpp`
|
||||
- `TextBoxmode`、`TextBox::draw()`、`TextBox::handleEvent()`、`TextBox::getText()`
|
||||
- 对外 API / 属性变化:[可选]
|
||||
- `TextBoxmode` 新增枚举值 `PASSWORD_MODE`。
|
||||
|
||||
## 行为对照
|
||||
|
||||
- 变更前: TextBox 只能按普通输入或只读模式展示文本,输入内容会直接显示。
|
||||
- 变更后: 设置为 `PASSWORD_MODE` 后,真实内容仍保存在 TextBox 中,绘制层使用 `*` 作为掩码,`getText()` 返回真实内容。
|
||||
- 兼容性说明:兼容
|
||||
- 迁移说明:[可选]
|
||||
- 原有模式无需迁移;密码输入场景显式选择 `PASSWORD_MODE`。
|
||||
- 此功能只隐藏界面显示,不应被视为密码安全存储方案。
|
||||
|
||||
## 验证与落地
|
||||
|
||||
- 验证方式:
|
||||
- 创建密码模式 TextBox,输入内容,确认界面显示掩码且 `getText()` 返回原始文本。
|
||||
- 将 `getText()` 结果交给业务层进行密码比对。
|
||||
- 验证结果:
|
||||
- PDF 历史记录将普通密码输入和业务比对两个手工场景记为通过。
|
||||
- 历史实现按 `std::string::size()` 生成掩码,即按字节而非明确按多字节逻辑字符计数;中文等 MBCS 输入的掩码数量不能据此认定为已正确验证。
|
||||
- 本次归档未构建 v2.3.2,也未重新运行 GUI 用例。
|
||||
- 关联 BUG / Fix:[可选]
|
||||
- Commit: `0c1cf2938f0d6c5684eeb318f17a8443e0c8cf5a`
|
||||
- PR:[可选]
|
||||
- 发布版本:[可选] v2.3.2
|
||||
- 备注:[可选]
|
||||
- 资料来源:`StellarX功能_模块变更.pdf` 第 22-23 页,并以对应提交和历史 `CHANGELOG.md` 交叉核对。
|
||||
Reference in New Issue
Block a user