Files
cmshoppe/docs/tasks/T-668.md
T

50 lines
2.7 KiB
Markdown
Raw Normal View History

2026-07-20 09:45:26 +08:00
---
id: T-668
title: AI生成图片画廊仅响应左键双击
status: DONE
2026-07-20 09:45:26 +08:00
phase: 7
deps: []
created: 2026-07-20
---
# T-668 AI生成图片画廊仅响应左键双击
## 问题 / 背景
②「AI生成」任务列表当前直接把 `QTableView.doubleClicked` 连接到封面画廊打开逻辑。该信号只传递单元格索引,不携带鼠标按键;右键双击命中任务行时也会触发同一回调,意外弹出图片查看窗口。右键应保留给未来的右键菜单或保持无操作,不能打开画廊。
## 方案
- 在 `app/gui/tabs/generate.py` 为②任务表增加局部的左键双击事件入口:从原始鼠标双击事件读取 `event.button()`,仅当按键为 `Qt.LeftButton` 时取得命中行并调用现有 `show_task_images()`。
- 移除 `task_table.doubleClicked.connect(self.show_task_images)` 这条通用信号连接,避免表格默认双击信号绕过按键判断;不修改其他模块的表格双击行为。
- 右键双击继续交给 Qt 的默认事件处理,但不得打开图片画廊、不得修改当前生成结果、不得显示错误提示。键盘切换行、单击选中行和新标题编辑列的既有逻辑保持不变。
- 将②任务列表相关提示文案明确为「左键双击」,避免用户误以为任何双击都会打开画廊。
## 验收标准
- [x] 左键双击②任务列表的非新标题编辑列时,仍打开当前行的封面图片画廊。
- [x] 右键双击同一行或空白区域时,不打开图片画廊、不保存或重置任何数据。
- [x] 新标题编辑列继续不打开图片画廊;单击选中、键盘上下切换、封面候选图保存及③更新蝦皮不回归。
- [x] `tests/test_gui.py` 覆盖左键双击会调用预览、右键双击不会调用预览。
2026-07-20 09:45:26 +08:00
## 验证
```bash
py -3.10 -m unittest discover -s tests -p "test_gui.py"
py -3.10 -m ruff check app tests main.py
py -3.10 -m compileall app main.py
git diff --check
```
## 非目标
- 不新增右键菜单、批量操作或快捷键。
- 不改数据库、AI 生成、图片下载、CDP/Shopee、Excel 或③更新流程。
## 执行记录
- 新增②专用 `_GenerateTaskTableView`,只为 `Qt.LeftButton` 双击发出 `leftDoubleClicked`;图片画廊改接该信号,移除通用 `doubleClicked` 绑定。
- 保留 Qt 默认双击处理,因此新标题列的既有双击编辑不受影响;右键双击不再触发画廊。封面候选提示统一为「左键双击」。
- 新增 GUI 回归测试,验证右键双击不打开画廊、左键双击仍打开。
- 验证通过:`py -3.10 -m unittest discover -s tests`(620 项)、`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check`。