Frequency-bands table interactions and status display (ticket 05) + .gitignore for doc/done #5
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ykp/gensig!5
Loading…
Reference in a new issue
No description provided.
Delete branch "ticket-05-bands"
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?
Implement ticket 05: the frequency-bands panel becomes live.
Includes the local
.gitignorechange (ignoredoc/done/archive) as requested.Model (
core/model.py):replace_band(index, band)(edit + re-sort, fails without mutating on bad input) anddelete_bands(indices)(set-based removal, survivors keep identity — no shifted-row mistakes).UI policy (
ui/policy.py, pure/headless-tested):next_band_fmin_fmax(Add rule: start at current max Fmax, +1 MHz step, clamped to MaxFrequency, None when exhausted),band_status_display(Empty/N/A, Valid, Reduce BW, Fc error vocabulary),generation_enabled(Generate gating).Window (
ui/main_window.py): editable Treeview (double-click inline edit, Enter commits / Esc cancels, invalid values rejected with a message), Add (+)/Delete (-) buttons (Delete enabled only when rows exist AND a row is selected), bandwidth/center/validity status labels, and Generate enabled exactly when validations pass (still shows the not-implemented notice on click).refresh()repopulates the sorted tree, updates status, re-gates Generate.Tests: model edit/delete helpers, policy add-step/status/gating, 9 new display-guarded window tests (tree population, add/reject, delete identity, delete enablement, status labels, generate gating). 116 passed + 1 display-guarded skip locally, coverage 97.5%, ruff/mypy/format clean. The CI
testjob runs the display tests under xvfb.