- Output filename now includes the print: <garment>_<print>.<ext>, e.g.
1_TY030.png (folder grouping unchanged) (§17.12).
- Hide the single-export button (export via the queue) and remove the
orphaned static export hint label (§17.13).
- Fix: selecting a non-fine-tuned queue item now lays the print out per the
selected template (apply_current) instead of load_print's centred default;
still guarded by _loading_queue_item so it isn't marked 已微调 (§17.14).
Docs: PRD 6.6/6.8/9, UI design 7.6/7.7/10/12.4, tasks.md 17.12–17.14.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Auto-preview the first image after a folder loads (both panels), so the
canvas isn't empty (§17.8).
- Group exports as <output_dir>/<timestamp>/<print_stem>/<garment_stem>.<ext>;
one timestamp per export run, shared across the batch (§17.9).
- Remember the last garment/print folders and reopen the picker there;
persisted via config, wired through main_window (§17.10).
- Shrink the 3 box templates further and lower them (chest placement).
- Fix: batch export ignored the chosen format/quality/output dir because the
queue never received ExportOptions. Export panel now emits
export_options_changed → queue.set_export_options (+ initial sync) (§17.11).
Docs: PRD 6.1/6.8/9, architecture 4.12, UI design 5.1, tasks.md 17.8–17.11.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The in-content header strip showed the app name + version, duplicating the
OS window title (setWindowTitle). With the 设置 button already gone it had no
other purpose, so remove it (and its styles / unused _HEADER_HEIGHT). Name and
version stay visible via the OS title bar; the work area gains ~40px.
Docs: UI design 3 (layout) and 4.1 (title bar), tasks.md 17.7.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The 设置 button was a layout placeholder from the initial header build —
never wired to anything, so clicking it did nothing. Remove it (and its
style) rather than leave a dead control; current settings (output
dir/format/quality) are editable inline in the export panel.
Docs: UI design 4.1 records that no settings entry is provided for now.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Template delete: add a 删除 button (reuses template_service.delete_template)
with a confirm dialog; hidden for built-ins like 保存; reloads and re-selects
the first built-in after deletion, persisting the new selection.
- Whole reset: move the template-wide reset out of the template area to the
bottom of the transform panel and rename it to 位置尺寸旋转重置为当前模板, so it
sits with the params it resets, beside the three per-section resets.
- Compact layout: pair X/Y and 宽/高 onto single rows (short labels), and put
the export 格式/质量 selectors on one row. Sync logic unchanged.
Docs: PRD 6.6, UI design 7.1/7.2/7.3/7.4/7.5/10, tasks.md 17.4/17.5/17.6.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
§17.1 Preferences persistence:
- Wire the previously-unused config_service; remember and restore the
last-selected template and last batch mode. main_window loads config,
distributes initial values, then persists on change (save-on-change).
- template_panel: template_changed signal, select_template,
current_template_state. queue_panel: set_batch_mode + batch_mode_changed.
§17.2 Independent resets:
- Replace the combined reset and 归零 with per-section 位置/尺寸/旋转 reset
buttons (quiet ghost styling) that restore only their own aspect to the
selected template. Size reset changes width/height only, leaving X/Y.
Button de-dup:
- Remove the export panel's 应用为模板 / 重置为模板 — literal duplicates of
the template panel's 另存为 / 重置为模板. Template actions now live only
in the template area; the export panel handles output only.
Docs: PRD (6.6/6.9/9/10), architecture (4.12), UI design (7.x/10),
development-rules (6, single-home actions + consistent naming), tasks.md (17).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Material list:
- Switch asset list from one-per-row to a wrapping thumbnail grid
(IconMode cards: thumbnail + corner checkbox + elided name, subfolder
moved to tooltip).
Templates:
- Template.to_transform_state now contains-fits the print inside the
target box by the print's native aspect ratio (no stretch); falls back
to the box when print size is unknown.
- Feed print native size into template_panel for aspect-aware fitting.
- Shrink built-in template boxes to realistic print proportions.
UI hierarchy:
- Promote 打开文件夹 buttons to primary (filled accent).
- Add inline 归零 (reset angle) and a 重置位置/尺寸/角度 button to the
transform panel; wire it to re-apply the selected template.
- Hide 保存 for built-in templates instead of leaving it greyed.
Docs: record template box/contain behavior (PRD) and the grid layout,
button hierarchy, and reset/save-visibility rules (UI design).
Tests: add 3 aspect-fit cases for to_transform_state.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>