Housekeeping: sticky settings master toggle, Normalize catalog row - #1114
Draft
PabloRuizCuevas wants to merge 2 commits into
Draft
PabloRuizCuevas wants to merge 2 commits into
PabloRuizCuevas wants to merge 2 commits into
Conversation
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>
PabloRuizCuevas
force-pushed
the
feat/pr-housekeeping
branch
from
September 17, 2026 09:58
aedc20b to
183c5ef
Compare
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.
Summary
Two small, unrelated fixes bundled together since neither is substantial enough alone.
sticky_settings_enabled(default on, existing behavior unchanged) as one master toggle instead of unticking every row in Persistent Settings one at a time.e6_normalizehad noSettingRow, 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 onmain).🤖 Generated with Claude Code