docs: specify esc hide preview controls

This commit is contained in:
2026-07-04 17:21:48 +08:00
parent 92fa48bb01
commit 0dea119a4e
2 changed files with 62 additions and 0 deletions
+32
View File
@@ -1643,3 +1643,35 @@
- [x] 成功/失败状态一眼可辨
- [x] 不影响原有等待计时、写回进度和复位行为
- [x] 验证:`python -m py_compile src/app/widgets/ai_outfit_panel.py tests/test_ai_outfit_panel.py`、`python tests/test_ai_outfit_panel.py`、离屏启动主窗口通过;全套 `python -m unittest discover -s tests` 仅失败于既有未提交 `packaging/default_config/ai_models.json` 含非空 `api_key`,与本任务无关
### 19.34 添加印花预览:Esc 隐藏选中框与控制点 — docs/08 §5.1
前置阅读:
- `docs/08-image-editor-design.md`(§5.1 预览控制层显隐)
- `src/app/widgets/image_canvas.py`(`_CanvasView`、`_sel_rect`、`_corner_handles`、`_rot_line`、`_rot_handle`、`_hit_test`、`_on_press`)
- `tests/` 中现有离屏 GUI 测试写法
背景:
「添加印花」模块中,选择衣服文件夹和印花文件夹后,中间预览区域会把印花叠加在衣服图片上,并显示蓝色选中框、缩放控制点和旋转控制点。用户希望按 `Esc` 时临时隐藏这些控制框和控制点,让预览更接近最终效果;之后再次点击预览区的印花时,仍能恢复并按原有方式拖动、缩放、旋转。
任务:
- [ ] `image_canvas.py`:让 `_CanvasView` 可以获得键盘焦点,并在点击预览区时获取焦点
- [ ] `image_canvas.py`:新增控制层显隐状态,例如 `_controls_visible`
- [ ] `image_canvas.py`:新增统一方法显示 / 隐藏 `_sel_rect`、`_corner_handles`、`_rot_line`、`_rot_handle`
- [ ] `image_canvas.py`:按 `Esc` 时只隐藏交互控制层,不隐藏 `_print_item`
- [ ] `image_canvas.py`:按 `Esc` 不修改 `TransformState`,不触发导出参数变化
- [ ] `image_canvas.py`:控制层隐藏后,点击印花图片先恢复控制层,再沿用现有拖动逻辑
- [ ] `image_canvas.py`:隐藏期间缩放控制点和旋转控制点不需要响应命中测试;恢复后原有缩放、旋转行为保持不变
- [ ] `image_canvas.py`:重新加载印花图片或创建新的印花图层时,控制层默认显示
- [ ] 测试或离屏验证:覆盖 `Esc` 隐藏、点击印花恢复、`TransformState` 不变
验收:
- [ ] 点击预览区后按 `Esc`,蓝色选中框、缩放控制点、旋转连接线和旋转控制点隐藏
- [ ] 按 `Esc` 后印花图片仍然显示,预览不变为空白
- [ ] 控制层隐藏后再次点击印花,控制层恢复,并可继续拖动、缩放、旋转
- [ ] 控制层显隐不改变 X/Y、宽高、角度,也不影响单张导出和批量导出
- [ ] 通过必要语法检查和离屏 GUI 验证