fix(splash): render each status from the cached artwork - #12
Merged
Merged
Conversation
_render() copied the widget's current pixmap, which already carried the previously drawn status text: __init__ renders 'Starting...', then every set_status() composited its message on top of the last one. By the time the main window appeared, 'Starting...', 'Loading UI components...' and 'Building main window...' were drawn over each other in the frosted-glass panel and none of them was readable. The inline comment claimed the base pixmap was cached; it was not. Cache the pristine scaled pixmap as self._base_pixmap in __init__ and copy from that on every render. Layout constants are untouched. The regression test asserts where the render sources its pixels rather than comparing rendered text: the headless CI platform has no Consolas, so status glyphs rasterise to nothing there and a text comparison would pass whether or not the bug is present. Verified the test fails on the real regression (sourcing from self.pixmap() while _base_pixmap exists) and passes on the fix. Co-Authored-By: Claude Opus 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.
_render() copied the widget's current pixmap, which already carried the previously drawn status text: init renders 'Starting...', then every set_status() composited its message on top of the last one. By the time the main window appeared, 'Starting...', 'Loading UI components...' and 'Building main window...' were drawn over each other in the frosted-glass panel and none of them was readable. The inline comment claimed the base pixmap was cached; it was not.
Cache the pristine scaled pixmap as self._base_pixmap in init and copy from that on every render. Layout constants are untouched.
The regression test asserts where the render sources its pixels rather than comparing rendered text: the headless CI platform has no Consolas, so status glyphs rasterise to nothing there and a text comparison would pass whether or not the bug is present. Verified the test fails on the real regression (sourcing from self.pixmap() while _base_pixmap exists) and passes on the fix.
What changed and why
How it was tested
Checklist
python -m pytest tests/passes locallypython app.pylaunches and loads a real measurement file with no regressiondocs/PR_Policy.mdare touched(loading/decoding pipeline,
core/signal_store.py,BusLogAnalyzer.spec,requirements.txt)APP_VERSIONinapp.pyandCHANGELOG.mdare not modified —the owner updates those at release time
Screenshot