Unsplit a diptych from the filmstrip - #880
Merged
Merged
Conversation
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.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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,
-DIPTYCHexport 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
.negpyhalf sidecars are left alone.forget_split_scan()besideremember_split_scans()— one lever both diptych readers already consult.StorageRepository.delete_file_settings(); no delete API existed, onlyrehome_file_settingsand the nuclearclear_saved_edits.request_undiptych()also clears the_measured_half_rowscache entries, or a re-meter files a half row again.half_frame_undiptychwith no default key, mapped to the view method so a keyboard path cannot skip the confirm.Tests
make allgreen (4235 passed, 11 skipped). New:forget_split_scanadd/no-op,request_undiptychon a diptych and on a plain frame,delete_file_settingsscope, and the menu entry appearing only for a diptych.Second commit is an unrelated ruff reflow
make formatinsisted on.