fix(product-suite): enable original image drag sorting

This commit is contained in:
chengma
2026-07-23 08:47:32 +08:00
parent 7d31578e8b
commit 05e12d8f61
5 changed files with 26 additions and 6 deletions
+7 -2
View File
@@ -3,7 +3,7 @@ id: T-691
title: 商品套图原图真实拖放排序修复
phase: 7
deps: [T-688]
status: TODO
status: DONE
created: 2026-07-23
---
@@ -55,4 +55,9 @@ created: 2026-07-23
## 执行记录
- 待实现。
- 2026-07-23 完成。
- `ProductOriginalList` 明确使用 `Qt.MoveAction` 作为内部拖放默认动作;处理非 URL 的内部 drop 时会先强制移动语义,并且只在来源为当前原图列表、Qt 已接受移动后才发送 `orderChanged`。外部文件 URL 拖入仍直接走 `filesDropped`,不会触发排序。
- `_refresh_originals()` 创建每张真实商品原图时显式附加 `Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled`,因此参考图和第一张主图都可作为拖放源和合法放置目标。排序仍复用既有 `reorder_originals()` 和 SQLite 单事务持久化,刷新后第一张继续按“主图”文字、粗体和语义色展示。
- 拉取未完成及生成中的排序锁定未改;内部无效 drop 不会发送排序信号。已同步 `docs/04-architecture.md` 与 `docs/routes.md`。
- 新增 GUI 回归:验证从项目刷新出的真实原图同时具备拖动/放置 flag,列表默认动作为移动;外部文件 URL drop 只触发导入、不触发排序。已有排序回归继续验证第二张变为第一张后的 SQLite 顺序、主图展示和成功提示。
- 验证通过:`py -3.10 -m unittest tests.test_product_suite_gui tests.test_image_studio tests.test_product_suite`(107项)、`py -3.10 -m unittest discover -s tests`(674项)、`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check`。离屏 PySide6 有字体目录/插件告警,但无测试失败。