Skip to content

Unsplit a diptych from the filmstrip - #880

Merged
marcinz606 merged 2 commits into
mainfrom
feat/unsplit-diptych
Aug 17, 2026
Merged

Unsplit a diptych from the filmstrip#880
marcinz606 merged 2 commits into
mainfrom
feat/unsplit-diptych

Conversation

@marcinz606

Copy link
Copy Markdown
Owner

Why

#874 and #875 stopped frames getting stuck as half-frame diptychs, but the only lever that creates or clears the state is the global Half Frame toggle. A scan already in the split-scan set — an existing pair, deliberately not backfilled by #875, or one the user split once and no longer wants joined — had no manual way out: disabled controls panel, joined-halves geometry, -DIPTYCH export name.

What

Right-click a diptych in the filmstrip → Unsplit diptych. The scan leaves the split-scan set and comes back as one plain, editable frame.

Destructive, behind a confirm dialog: both halves' edits, their undo history and their work prints are deleted, so a later split starts from defaults. Triage marks stay (a keep/reject is not an edit) and exported .negpy half sidecars are left alone.

  • forget_split_scan() beside remember_split_scans() — one lever both diptych readers already consult.
  • New StorageRepository.delete_file_settings(); no delete API existed, only rehome_file_settings and the nuclear clear_saved_edits.
  • request_undiptych() also clears the _measured_half_rows cache entries, or a re-meter files a half row again.
  • Registry entry half_frame_undiptych with no default key, mapped to the view method so a keyboard path cannot skip the confirm.

Tests

make all green (4235 passed, 11 skipped). New: forget_split_scan add/no-op, request_undiptych on a diptych and on a plain frame, delete_file_settings scope, and the menu entry appearing only for a diptych.

Second commit is an unrelated ruff reflow make format insisted on.

A scan in the split-scan set had no manual way out: the only lever was the global
Half Frame toggle. Right-click a diptych and pick Unsplit diptych to get one plain
frame back — it renders and exports whole, and the controls panel comes alive.

Destructive, behind a confirm: the two halves' edits, their undo history and their
work prints are deleted, so a later split starts from defaults. Exported .negpy half
sidecars are left alone. The shortcut entry routes through the view, not the
controller, so a keyboard binding cannot skip the confirm.
@marcinz606
marcinz606 merged commit c325e7e into main Aug 17, 2026
1 check passed
activexray pushed a commit to activexray/NegPy that referenced this pull request Aug 17, 2026
* feat(half frame): unsplit a diptych from the filmstrip

A scan in the split-scan set had no manual way out: the only lever was the global
Half Frame toggle. Right-click a diptych and pick Unsplit diptych to get one plain
frame back — it renders and exports whole, and the controls panel comes alive.

Destructive, behind a confirm: the two halves' edits, their undo history and their
work prints are deleted, so a later split starts from defaults. Exported .negpy half
sidecars are left alone. The shortcut entry routes through the view, not the
controller, so a keyboard binding cannot skip the confirm.

* style: ruff reflow of a long call in test_updater
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.

1 participant