T-569 增加封面画廊任务切换

This commit is contained in:
chengma
2026-07-09 12:19:29 +08:00
parent ae4daacbbf
commit 4e98a86fb3
3 changed files with 447 additions and 18 deletions
+18 -2
View File
@@ -3,7 +3,7 @@ id: T-569
title: ②封面画廊上下条切换与未保存选择拦截
phase: 7
deps: [T-567]
status: TODO
status: DONE
created: 2026-07-09
---
@@ -66,4 +66,20 @@ T-567 的封面画廊只处理当前单条任务。运营批量检查时需要
## 执行记录
(做完在这里写:改了什么文件、跑了什么验证命令及结果、遇到的阻塞、关键决策。)
- 2026-07-09 完成 T-569。
- 修改 `app/gui/tabs/generate.py`:
- ②封面画廊新增「上一条」「下一条」按钮,目标任务来自打开画廊时②当前可见表格任务列表,按相邻行切换,首尾边界按钮自动置灰。
- 切换任务时只刷新弹窗内部任务、旧封面和候选画廊内容,不重建整个窗口,窗口尺寸和位置保持不变;切换时会重新读取 DB 最新任务和候选文件。
- 支持 `↑` / `↓` 键走同一套上一条/下一条切换逻辑;候选 `QRadioButton` 改为 `ClickFocus`,避免方向键在 radio 组内改候选。
- 增加统一未保存选择拦截:按钮切换、方向键切换、取消/关闭弹窗前,如果当前选中候选不同于当前 DB 封面指针,会弹中文三态确认「保存 / 不保存 / 取消」。保存路径复用 `db.update_generated_cover()`,已提交线上任务仍先弹“本地换封面不会回滚蝦皮,重复更新会再次提交线上”确认;保存失败保留当前任务。
- 与 T-568 兼容:单任务封面重生运行中切换回该任务时显示“封面重新生成中”,完成/失败后继续刷新 DB 和候选列表。
- 修改 `tests/test_gui.py`:
- 覆盖上一条/下一条按当前可见列表切换、边界按钮状态、切换不改变窗口尺寸/位置。
- 覆盖 `↑`/`↓` 键切换任务且不改变候选 radio 选择。
- 覆盖未保存选择在切换和关闭时的「保存 / 不保存 / 取消」三种路径,以及已提交任务保存前的二次确认。
- 验证通过:
- `py -3.10 -m unittest tests.test_gui`
- `python -m ruff check app tests main.py`
- `py -3.10 -m compileall app main.py`
- `py -3.10 -m unittest discover -s tests`(302 tests;PySide6 字体目录警告不影响结果)
- `git diff --check`