Repository navigation
Bridge: sync ProgressBarWindow to NDI-matlab aa96851e (bar fills its row on R2026a) - #327
Merged
Merged
Conversation
…row on R2026a) NDI-matlab 1e8fc581, d367f621 and 175b08af wrap each bar's uiaxes in a borderless uipanel and pin it BarMargin px inside via a new static fitBarAxes, working around uiaxes' reserved label room under R2026a. The Qt port draws a QProgressBar its layout already sizes to the row, so nothing on the Python side follows; bump the hash and record why. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UMLSmPQyLVBfBC52mCahmk
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.
What
Clears the
MATLAB/Python bridge completenessdrift failure onndi_gui_component_ProgressBarWindow:This came from upstream NDI-matlab, so any PR opened against
mainnow fails the check (it is red on #326 for this reason).Following section 7 of
docs/developer_notes/ndi_matlab_python_bridge.yaml(option 2: diff read, nothing for Python to follow):matlab_last_sync_hash:2b23dd30→aa96851e(the file's last-touching commit,git log -1 --format=%h -- <path>).decision_lognote naming the commits being accounted for, asTestAHashChangeIsJustifiedrequires when a hash moves without a port.The MATLAB diff (
2b23dd30..aa96851e, ProgressBarWindow.m)Three commits, on
mainvia mergeaa96851e:1e8fc581ProgressBarWindow: the bar fills its row on R2026ad367f621the bar sits 5 px inside its row, on the window's background175b08afthe bar's panel turns AutoResizeChildren offUnder R2026a, a
uiaxesin a grid cell is placed by its outer box and keeps about 25 px for tick labels and a title, even when they're hidden. In a 28 px row that left a 2.7 px bar. The fix:addBarparents the bar's axes to a borderlessuipanel.BarMargin = 5, sets the gap.fitBarAxes, pins the axes'InnerPosition5 px inside the panel. It runs once, then as the panel'sSizeChangedFcn.removeBardeletes and re-rows the panel throughAxes.Parent.Why there is nothing to port
The Qt port draws each bar as a
QProgressBar(min-height 18 px) stretched across its row'sQHBoxLayout. There is no axes outer box to work around, andremoveBaralready removes the whole row frame.BarMarginandfitBarAxesare MATLAB uifigure plumbing, likesetGraphics/tryDockalready listed in the entry'sdecision_logas having no Qt counterpart. The bridge property gate does not flag the hidden constant.Testing
Run locally against a full NDI-matlab checkout at
695e8d86(currentmain), withNDI_BRIDGE_CHECK_STRICT=1as CI sets:test_matlab_bridge_hashes.py,_completeness.py,_properties.py,_status.pyand_python_paths.py: 192 passed. Before this change,test_no_entry_has_driftedfailed with the error above.test_bridge_skip_backstop.py: 3 passed.black --check src/ tests/andruff check src/ tests/: clean.pytest tests/suite was not run locally (only YAML changed, andndiisn't installed in this sandbox). CI runs it.Independent of #326 (vhlab archive URLs) and can merge in either order. Once this is on
main, mergingmaininto #326 clears the bridge failure there.🤖 Generated with Claude Code
https://claude.ai/code/session_01UMLSmPQyLVBfBC52mCahmk
Generated by Claude Code