From 30814b6bd69335c56af2d6a293f29dd0de33bd07 Mon Sep 17 00:00:00 2001 From: ila Date: Thu, 18 Jun 2026 11:37:17 +0800 Subject: [PATCH] docs: reconcile tasks.md with actual state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tick §17.1–17.6 (persistence, independent resets, button dedup, relocate/rename, template delete, compact layout — all implemented earlier). Clean up §18: move delivered online-update/distribution out of the backlog; add stage-4 (mandatory/ retention) as the remaining update work. Co-Authored-By: Claude Opus 4.8 --- tasks.md | 108 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/tasks.md b/tasks.md index 9ebbbd7..2de7c12 100644 --- a/tasks.md +++ b/tasks.md @@ -554,20 +554,20 @@ 任务: -- [ ] 先读取 `src/services/config_service.py` 与 `src/app/main_window.py` 现有内容 -- [ ] 在 `main_window` 启动时调用 `load_config()` 并把初值分发给各面板(集中管理,不让控件各自读写) -- [ ] 在 `config_service` 默认配置中新增 `last_template`、`last_batch_mode` -- [ ] 记住并在启动时恢复上次选择的模板;自定义模板已删除时回退到第一个内置模板 -- [ ] 记住并在启动时恢复上次选择的批量模式;持久化值非法时回退默认(全组合) -- [ ] 面板选择变化时「改一次存一次」回写配置 -- [ ] `template_panel` 增加模板选择变化信号(携带模板名) -- [ ] `queue_panel` 增加 `set_batch_mode()` 与批量模式变化信号 +- [x] 先读取 `src/services/config_service.py` 与 `src/app/main_window.py` 现有内容 +- [x] 在 `main_window` 启动时调用 `load_config()` 并把初值分发给各面板(集中管理,不让控件各自读写) +- [x] 在 `config_service` 默认配置中新增 `last_template`、`last_batch_mode` +- [x] 记住并在启动时恢复上次选择的模板;自定义模板已删除时回退到第一个内置模板 +- [x] 记住并在启动时恢复上次选择的批量模式;持久化值非法时回退默认(全组合) +- [x] 面板选择变化时「改一次存一次」回写配置 +- [x] `template_panel` 增加模板选择变化信号(携带模板名) +- [x] `queue_panel` 增加 `set_batch_mode()` 与批量模式变化信号 验收: -- [ ] 重启后自动恢复上次选择的模板和批量模式 -- [ ] 自定义模板被删除或批量模式值非法时安全回退,不报错 -- [ ] UI 控件不直接读写配置文件 +- [x] 重启后自动恢复上次选择的模板和批量模式 +- [x] 自定义模板被删除或批量模式值非法时安全回退,不报错 +- [x] UI 控件不直接读写配置文件 ### 17.2 位置 / 尺寸 / 旋转独立重置 @@ -578,19 +578,19 @@ 任务: -- [ ] 先读取 `src/app/widgets/transform_panel.py` 现有内容 -- [ ] 在 `位置` / `尺寸` / `旋转` 三个分区标题右侧各加一个独立 `重置` 按钮 -- [ ] 各重置只把对应参数还原为当前选中模板的值,互不影响(位置→仅 X/Y;尺寸→仅宽/高,位置不变;旋转→仅角度) -- [ ] 移除合并的 `重置位置 / 尺寸 / 角度` 按钮与角度旁的 `归零` 按钮 -- [ ] 重置按钮采用幽灵样式(静止灰、悬停蓝、按下深蓝、禁用更灰),不使用红色 -- [ ] 未选模板或未加载衣服/印花时三个按钮置灰 -- [ ] 由 `main_window` 取模板换算值并按项合并进当前 `TransformState` +- [x] 先读取 `src/app/widgets/transform_panel.py` 现有内容 +- [x] 在 `位置` / `尺寸` / `旋转` 三个分区标题右侧各加一个独立 `重置` 按钮 +- [x] 各重置只把对应参数还原为当前选中模板的值,互不影响(位置→仅 X/Y;尺寸→仅宽/高,位置不变;旋转→仅角度) +- [x] 移除合并的 `重置位置 / 尺寸 / 角度` 按钮与角度旁的 `归零` 按钮 +- [x] 重置按钮采用幽灵样式(静止灰、悬停蓝、按下深蓝、禁用更灰),不使用红色 +- [x] 未选模板或未加载衣服/印花时三个按钮置灰 +- [x] 由 `main_window` 取模板换算值并按项合并进当前 `TransformState` 验收: -- [ ] 位置、尺寸、旋转可分别独立重置,互不影响 -- [ ] 尺寸重置只改变宽 / 高,不改变位置 X / Y -- [ ] 按钮视觉层级符合 `docs/07-ui-design.md` 第 10 节 +- [x] 位置、尺寸、旋转可分别独立重置,互不影响 +- [x] 尺寸重置只改变宽 / 高,不改变位置 X / Y +- [x] 按钮视觉层级符合 `docs/07-ui-design.md` 第 10 节 ### 17.3 按钮去重(导出面板模板入口) @@ -600,13 +600,13 @@ 任务: -- [ ] 移除导出面板的 `应用为模板` 与 `重置为模板` 按钮(与模板区域的 `另存为` / `重置为模板` 是同一动作的重复入口) -- [ ] 模板相关操作统一留在模板区域,导出面板只负责输出与导出 +- [x] 移除导出面板的 `应用为模板` 与 `重置为模板` 按钮(与模板区域的 `另存为` / `重置为模板` 是同一动作的重复入口) +- [x] 模板相关操作统一留在模板区域,导出面板只负责输出与导出 验收: -- [ ] 同一个动作在界面上只出现一次,命名一致 -- [ ] 导出面板仅保留输出设置与 `导出当前单张` +- [x] 同一个动作在界面上只出现一次,命名一致 +- [x] 导出面板仅保留输出设置与 `导出当前单张` ### 17.4 「重置为模板」归位并更名为「位置尺寸旋转重置为当前模板」 @@ -616,17 +616,17 @@ 任务: -- [ ] 把模板区域的 `重置为模板` 按钮移出,移到参数栏底部(旋转分区下方) -- [ ] 更名为 `位置尺寸旋转重置为当前模板`,与三个分项 `↺ 重置` 构成「全部 + 分项」两级 -- [ ] 还原逻辑改为把位置/尺寸/旋转整体设为模板值,并与分项重置同走 `_apply_preview_transform` -- [ ] 与三个分项重置一起受「未加载图片时置灰」控制 -- [ ] 采用安静、全宽、悬停出强调色的样式(不使用红色) +- [x] 把模板区域的 `重置为模板` 按钮移出,移到参数栏底部(旋转分区下方) +- [x] 更名为 `位置尺寸旋转重置为当前模板`,与三个分项 `↺ 重置` 构成「全部 + 分项」两级 +- [x] 还原逻辑改为把位置/尺寸/旋转整体设为模板值,并与分项重置同走 `_apply_preview_transform` +- [x] 与三个分项重置一起受「未加载图片时置灰」控制 +- [x] 采用安静、全宽、悬停出强调色的样式(不使用红色) 验收: -- [ ] 模板区域只剩 `保存` / `另存为`,不含整体重置 -- [ ] `位置尺寸旋转重置为当前模板` 在旋转分区下方,未加载图片时置灰 -- [ ] 点击后位置、尺寸、旋转一并还原为当前选中模板 +- [x] 模板区域只剩 `保存` / `另存为`,不含整体重置 +- [x] `位置尺寸旋转重置为当前模板` 在旋转分区下方,未加载图片时置灰 +- [x] 点击后位置、尺寸、旋转一并还原为当前选中模板 ### 17.5 模板删除按钮 @@ -636,17 +636,17 @@ 任务: -- [ ] 在模板区域增加 `删除` 按钮(复用 `template_service.delete_template`) -- [ ] `删除` 仅对自定义模板可用,选中内置模板时隐藏(与 `保存` 一致) -- [ ] 删除前弹二次确认对话框;确认后才删除 -- [ ] 删除后刷新下拉框并回选第一个内置模板,同步持久化选择 -- [ ] `删除` 用红色文字提示危险但保持安静样式 +- [x] 在模板区域增加 `删除` 按钮(复用 `template_service.delete_template`) +- [x] `删除` 仅对自定义模板可用,选中内置模板时隐藏(与 `保存` 一致) +- [x] 删除前弹二次确认对话框;确认后才删除 +- [x] 删除后刷新下拉框并回选第一个内置模板,同步持久化选择 +- [x] `删除` 用红色文字提示危险但保持安静样式 验收: -- [ ] 可在界面上删除自定义模板,无需手改 `templates.json` -- [ ] 内置模板不显示 `删除` -- [ ] 删除有二次确认,取消则不删 +- [x] 可在界面上删除自定义模板,无需手改 `templates.json` +- [x] 内置模板不显示 `删除` +- [x] 删除有二次确认,取消则不删 ### 17.6 参数/导出面板紧凑化与命名 @@ -656,17 +656,17 @@ 任务: -- [ ] 「位置」的 X、Y 输入框放在同一行(标签简化为 `X` / `Y`) -- [ ] 「尺寸」的宽、高输入框放在同一行(标签简化为 `宽` / `高`),`锁定宽高比例` 在其下方 -- [ ] 导出面板「格式」「质量」放在同一行 -- [ ] 底部整体重置按钮更名为 `位置尺寸旋转重置为当前模板` -- [ ] 仅改布局/文案,不动同步与导出逻辑 +- [x] 「位置」的 X、Y 输入框放在同一行(标签简化为 `X` / `Y`) +- [x] 「尺寸」的宽、高输入框放在同一行(标签简化为 `宽` / `高`),`锁定宽高比例` 在其下方 +- [x] 导出面板「格式」「质量」放在同一行 +- [x] 底部整体重置按钮更名为 `位置尺寸旋转重置为当前模板` +- [x] 仅改布局/文案,不动同步与导出逻辑 验收: -- [ ] X/Y 一行、宽/高一行、格式/质量一行,界面更紧凑 -- [ ] 拖动/缩放预览后输入框仍正常同步 -- [ ] 质量仍仅在 JPG 时可用 +- [x] X/Y 一行、宽/高一行、格式/质量一行,界面更紧凑 +- [x] 拖动/缩放预览后输入框仍正常同步 +- [x] 质量仍仅在 JPG 时可用 ### 17.7 移除重复的自绘标题栏与无效「设置」按钮 @@ -971,12 +971,16 @@ 以下任务第一阶段暂不做,后续需要时再新增设计文档: -- [ ] 局域网分发 -- [ ] 自动更新 -- [ ] 多版本启动器 - [ ] 按电脑名控制版本 +- [ ] 强制更新与版本保留策略(`mandatory` / `min_supported` 生效、`app.old` 保留策略;docs/10 §16 阶段④) - [ ] AI 穿搭 - [ ] 导出上架流程 - [ ] 自动抠图 - [ ] 自动识别衣服区域 - [ ] 移动端应用 + +已交付(原属暂缓,本季完成,见 §17.16–§17.20、`docs/10-lan-update.md`): + +- [x] 在线更新(HTTP 检测 + 通知 + `Launcher.exe` 自动安装 + 回滚) +- [x] 局域网/在线分发(便携包 + HTTP 文件服务 + manifest) +- [x] ~~多版本启动器~~(改为 `app`/`app.old` 单版本切换,不再做多版本并排)