Skip to content

Add export-all-visible option to Export Presets with confirmation dialog#394

Merged
marcinz606 merged 1 commit into
marcinz606:mainfrom
jboneng:feature/eksport_preset_filmstrip
Jul 4, 2026
Merged

Add export-all-visible option to Export Presets with confirmation dialog#394
marcinz606 merged 1 commit into
marcinz606:mainfrom
jboneng:feature/eksport_preset_filmstrip

Conversation

@jboneng

@jboneng jboneng commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Export Presets previously ran only on the current frame. This PR adds a batch path that exports every visible filmstrip frame through every enabled preset, with a confirmation step before large jobs start.

The Export panel Presets row is also reworked into a split control: main click = current frame; chevron menu = scope choice (current frame or all visible).

Changes

Export presets — batch scope

  • request_preset_batch_export() walks visible filmstrip indices (respects sort + filter, same as Export All / Contact Sheet).
  • Each frame uses its own saved edit from the DB; each enabled preset runs through the existing _tasks_for_file() / resolve_preset_export() pipeline (Print vs Flat per preset unchanged).
  • Confirmation dialog before batch runs, e.g. “Export 36 frames through 3 presets (108 files)?” — Cancel aborts with no export.

UI — split Export Presets control

  • Main button — one-click export of the current frame through all enabled presets (unchanged behavior).
  • Chevron menu — explicit choices:
    • Export current frame
    • Export all visible frames…
  • Manage button stays compact; Export Presets expands to fill the row.
  • Styled as a unified split button in modern_dark.qss (centered label, larger chevron, no duplicate Qt menu arrow).

Docs & tests

  • Tutorial export step updated to mention the split button.
  • TestPresetBatchExport — filter scope, cancel, empty visible set, confirmation message.

Test plan

  • Enable 2+ presets; click Export Presets main area → only current frame exports (N files for N presets).
  • Open chevron menu → Export current frame → same as above.
  • Open chevron menu → Export all visible frames… → confirmation shows correct frame × preset × file counts.
  • Confirm Cancel on dialog → no export starts.
  • Confirm Yes → all visible frames export through each enabled preset, hidden/filtered frames skipped.
  • Filter filmstrip to a subset → batch export only includes visible frames.
  • Flat + Print presets mixed → each preset’s render intent respected per frame.
  • uv run pytest tests/test_controller.py::TestPresetBatchExport -v
  • uv run ruff check

@marcinz606 marcinz606 merged commit ab66d7c into marcinz606:main Jul 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants