fix(ui): preserve Output preview zoom on parameter reload (#21) - #123
Merged
vigri merged 1 commit intoApr 16, 2026
Merged
Conversation
…ilor-Advanced#21) When the Output filter rebuilds its TabbedImageView, read zoom and scrollbar position from the active tab instead of the first ImageViewBase in the widget tree. Reapply zoom and normalized scroll after the first layout pass so ImageViewBase::resizeEvent does not wipe the view state.
|
I tested this fix and it seems to work as expected. Thanks for analyzing the problem. However, I can't say anything about the code changes, because I'm not familiar with C++. |
vigri
approved these changes
Apr 16, 2026
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
Fixes the Output-stage behaviour described in #21: changing processing options triggered a full main-area rebuild, and the preview often jumped back to a whole-page view because zoom/scroll state was taken from the wrong
ImageViewBase(depth-first search) and the firstresizeEventrecentered the focal point.What changed
output::TabbedImageView, capture and restore zoom/scroll from the active tab (currentWidget()) instead of the firstImageViewBasein the object tree.resizeEvent, avoiding an immediate wipe of the focal point.How to test
Optional: repeat with another tab selected (e.g. Dewarping) to confirm the active tab’s view is what gets preserved.
Closes #21 if maintainers agree this fully matches the requested behaviour.