fix(gui): build missing power panel + wire dead entries; 2x2 selection grid (step 020a) #32
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/020a-gui-wiring"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements step 020a from
docs/backlog/020a-gui-wiring-fixes.md(P0 — the generation flow was broken).Problems fixed
_on_model_change(app.py line 153) calledself._power_sat_var.config(...), but the per-satellite power panel was never built. Toggling any signal checkbox raisedAttributeError: 'GengnssApp' object has no attribute '_power_sat_var'inside the Tk callback, aborting theAppModelobserver loop soFeasibilityControllernever recomputed,can_generatestayedFalseand the Generate button stayed grayed — one root cause, both reported symptoms._on_settingon FocusOut + Return (keeps the red-highlight error behavior, avoids flashing on partial input while typing)_on_spanon FocusOut + Returnfmt/placeholder_bitscomboboxes →model.updateviatrace_addChanges
src/gengnss/gui/app.py: build the power panel in the Channel-model tab (satellite combobox tracking_sat_ids(), dB entry, Set/Remove offset buttons);hasattrguard in_on_model_changeso early model notifications can never crash again; 2x2 grid layout; widget wiring.tests/test_gui_app.py: gui-marked regression tests — selection toggle no longer raises and enables Generate, power offset set/remove, and the 2x2 grid layout (skip cleanly headless).Verification
ruff check src testsclean on touched files (pre-existing unrelated errors in untrackedsrc/main/junk dir untouched)pytest: 192 passed, 1 skipped (GUI tests skip headless; the regressions run in CI with a display)GengnssApp(tkinter shim): 12/12 checks — no AttributeError,can_generate → True, Generate enabled, power offsets set/remove, panels at grid cells (0,0)/(0,1)/(1,0)/(1,1)Closes the P0 item of 020a; 020b (Browse/Save/Load) and 020c are unblocked.