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

50 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: T-668
title: AI生成图片画廊仅响应左键双击
status: DONE
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` 覆盖左键双击会调用预览、右键双击不会调用预览。
## 验证
```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`。