docs(tasks): add main header deduplication

This commit is contained in:
chengma
2026-07-23 14:40:53 +08:00
parent 594592c9b2
commit e079a65909
+48
View File
@@ -0,0 +1,48 @@
---
id: T-697
title: 移除主窗口应用内重复标题
phase: 7
deps: [T-696]
status: TODO
created: 2026-07-23
---
## 问题 / 背景
主窗口当前同时使用 `setWindowTitle(display_name())` 设置 Windows 原生标题栏,并在六个 Tabs 上方通过 `QLabel(display_name())` 再显示一次相同应用名称。两个标题上下相邻,信息语义完全重复,占用桌面工作台的垂直空间,也削弱右侧会员状态的层级。
Windows 原生标题必须保留,用于窗口识别、任务栏/Alt+Tab 展示和系统窗口操作。应用内顶部区域还需要承载 T-696 的会员账号、套餐和有效期,因此不能整体删除,只应改为轻量会员状态栏。
## 方案
- 保留 `MainWindow.setWindowTitle(display_name())` 和现有窗口图标,不修改 Windows 原生标题栏或窗口拖动行为。
- 删除应用内 `_header_title_label`、`appHeaderTitle` 对象和对应字体样式,不用其他品牌文字、图标或占位标签替代。
- 保留 `appHeader` 容器与右侧 `subscriptionStatusLabel`;会员有效、观察中、异常和验证中状态逻辑不变。
- 状态栏继续右对齐,并适当收紧上下边距;不设置固定高度,让中文长套餐、系统字体放大和高 DPI 下仍可自然撑开。
- 这是单个标签和间距的局部调整,不改变导航模型、业务流程或交互状态,因此不新增 HTML/SVG 原型。
- 更新 `docs/routes.md`,明确顶部区域只承载会员状态,应用名称以 Windows 原生标题栏为准。
## 验收要点
- Windows 原生标题仍显示当前 `display_name()`,任务栏和窗口标题行为不变。
- Tabs 上方不再出现第二个“蝦皮圈優化助手”应用名称。
- 顶部会员账号、套餐、有效期和观察状态仍正常显示并保持右对齐。
- 顶部区域高度较原布局收紧,但在 Qt 字体/DPI 自适应时不会裁切文字。
- 订阅观察模式、设置保存后重查、六个 Tab 和状态栏功能不受影响。
- 自动验证:
- 主窗口标题与顶部会员状态定向 GUI 测试
- `py -3.10 -m unittest discover -s tests`
- `py -3.10 -m ruff check app tests main.py`
- `py -3.10 -m compileall app main.py`
- `git diff --check`
## 边界(不改什么)
- 不自定义、隐藏或替换 Windows 原生标题栏。
- 不移动会员状态到系统标题栏、TabBar 或底部状态栏。
- 不修改 T-696 订阅查询、观察/强制开关、接口或门禁逻辑。
- 不修改六个业务 Tab、主题色、按钮、表格、CDP 或蝦皮业务流程。
## 执行记录
- 待实现。