fix(ui): keyboard-step a fractional slider by its declared step, not 1/precision - #1082
Merged
marcinz606 merged 1 commit intoSep 12, 2026
Conversation
…1/precision CompactSlider's own arrow-key step lives in the slider's internal precision-scaled integer space, but only ever got set when step >= 1.0 -- using int(step) as the raw integer value, correct only at precision=1. Every fractional-precision slider with an explicit step (lith/cyanotype exposure, burn, feather, hue trim, render exposure...) had that step silently ignored by the slider widget, which fell back to Qt's raw default of 1 internal unit -- 1/precision in real units, invisible on a wide range. Grade, at precision=100 with step=1.0, moved 0.01 ISO-R points per arrow press instead of the declared 1.0. Fixed by always scaling step through precision for the slider's own singleStep, independent of the >=1.0 branch (which stays for tick spacing and integer display). Also gives Fine Rotation, Tilt and Swing an explicit step=0.1 (was the default 0.01, which happened to match Qt's old fallback exactly, so the wiring fix alone would not have changed anything for them) -- an arrow press on any of the three was imperceptible on a ±45 degree / ±15% range. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
Slider that rotates the images (and others) are basically unusable by using the keyboard as the keyboard steps is super small, this pr changes that.
from the AI:
CompactSlider's own arrow-key step lives in the slider's internal precision-scaled integer space, but only ever got set when
step >= 1.0— usingint(step)as the raw integer value directly, which is only correct atprecision=1. Every fractional-precision slider with an explicitstep(lith/cyanotype exposure, burn, feather, hue trim, render exposure…) had that step silently ignored by the slider widget itself, which fell back to Qt's raw default of 1 internal unit —1/precisionin real units, invisible on a wide range. Grade, atprecision=100withstep=1.0, moved 0.01 ISO-R points per arrow press instead of the declared 1.0.Fixed by always scaling
stepthroughprecisionfor the slider's ownsingleStep, independent of the>= 1.0branch (which stays for tick spacing and integer display).Also gives Fine Rotation, Tilt and Swing an explicit
step=0.1(was the default0.01, which happened to match Qt's old fallback exactly, so the wiring fix alone would not have changed anything for them) — an arrow press on any of the three was imperceptible on a ±45°/±15% range.