Skip to content

Housekeeping: sticky settings master toggle, Normalize catalog row - #1114

Draft
PabloRuizCuevas wants to merge 2 commits into
marcinz606:mainfrom
PabloRuizCuevas:feat/pr-housekeeping
Draft

PabloRuizCuevas wants to merge 2 commits into
marcinz606:mainfrom
PabloRuizCuevas:feat/pr-housekeeping

Conversation

@PabloRuizCuevas

Copy link
Copy Markdown
Contributor

Summary

Two small, unrelated fixes bundled together since neither is substantial enough alone.

  • Master switch to stop settings carrying to a new frame: opening a file with no saved edit picks up a broad set of sticky settings from the last-saved edit, including real look adjustments (Chroma, CLAHE, Sharpening, Cast Removal, Auto Exposure, ...), not just rig/roll facts. Adds sticky_settings_enabled (default on, existing behavior unchanged) as one master toggle instead of unticking every row in Persistent Settings one at a time.
  • Normalize gets a settings-catalog row: e6_normalize had no SettingRow, so Apply Settings, Apply Preset, and every metadata/edit preset silently skipped it — there was no way to batch it onto a selection or a whole roll. Its sibling Positive already has a row; Normalize gets the same one, sticky like Mode and Positive since all three are the same capture-mode decision.

Testing

make all (ruff check/format, full pytest) passes with only one known unrelated failure (test_load_tooltip_follows_a_rebinding, a macOS key-symbol rendering difference, pre-existing on main).

🤖 Generated with Claude Code

PabloRuizCuevas and others added 2 commits September 17, 2026 16:58
Opening a file with no saved edit picks up a broad set of sticky settings
from the last-saved edit, including real look adjustments (Chroma, CLAHE,
Sharpening, Cast Removal, Auto Exposure, ...), not just rig/roll facts.
There was no quick way to turn that off without unticking every row in
Persistent Settings one at a time.

Add `sticky_settings_enabled` (default on, so existing behavior is
unchanged), a new AppState field persisted the same way as sticky_zoom.
It gates only the picker-driven overlay in _apply_sticky_settings's
only_global=False branch (load_sticky_rows / sticky_cfg /
apply_selected_fields, plus the description-fields carry that rides on
those rows) for a freshly opened, never-edited file. Off, every catalog
row - including the rig-ish ones like process mode, crop ratio and flips
- stays at WorkspaceConfig() defaults; the user's row picks in
STICKY_ROWS_KEY/STICKY_CONFIG_KEY are untouched, so switching back on
restores exactly what was ticked. Untouched either way: EXPORT_REMAINDER,
the flat-field profile overlay, the Kelvin roll-locks, ALWAYS_STICKY_PROCESS
and the only_global=True branch that syncs export/metadata onto an
already-edited file - none of those are a transformation to the picture.

The switch lives as a "Carry settings between frames" checkbox right next
to the Persistent Settings… button in Preferences → Session & Storage,
which it also disables when off. Also registered as an unbound shortcut
action (toggle_sticky_settings) alongside its sibling Sticky Zoom.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
e6_normalize had no SettingRow, so Apply Settings, Apply Preset and every
metadata/edit preset silently skipped it -- there was no way to batch it
onto a selection or a whole roll, only set it one frame at a time. Its
sibling Positive already has a row; Normalize gets the same one, sticky
like Mode and Positive since all three are the same capture-mode decision.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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