aethersdr / aethersdr/AetherSDR
Utility band buttons (WWV/GEN/2200/630) lose the tuning-range gate after a band-panel rebuild
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 221
- Forks
- 117
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 299
Description
Summary
The tuning-range gate added in #4503 (SpectrumOverlayMenu::applyTuningRangeToBandButtons()) stops covering the utility band buttons — WWV, GEN, 2200, 630 — after the band panel is rebuilt.
Detail
Buttons are gated by being registered in m_bandBtnFreqs. There are two places the utility row is built:
- Original construction (
SpectrumOverlayMenu.cpp:455) — registers them:m_bandBtnFreqs.append({btn, freq}); setXvtrBands()rebuild (SpectrumOverlayMenu.cpp:2678-2702) — the same loop, but with nom_bandBtnFreqs.append.
setXvtrBands() clears m_bandBtnFreqs at the top (:2538) because the whole panel is destroyed and rebuilt. HF bands are re-registered via makeBandBtn() and declared bands at :2621, so those stay gated — but the utility buttons are not re-registered and silently drop out of the gate.
The rebuild runs from MainWindow.cpp:5294, wired to RadioModel::infoChanged, so it happens routinely rather than rarely.
Effect on an HL2: 2200 m (0.136 MHz) and 630 m (0.475 MHz) sit below the reported tuning range and are correctly greyed out on first build, then become live again after the first rebuild.
Not a bug: the XVTR buttons
The XVTR band buttons are also absent from m_bandBtnFreqs, but that is correct and should stay that way. A transverter's rfFreqMhz is by definition a frequency the radio cannot tune natively — gating those buttons by the radio's own tuning range would disable exactly the bands the transverter exists to provide.
Suggested fix
Add the m_bandBtnFreqs.append({btn, freq}) to the utility-button branch of the setXvtrBands() rebuild, matching :455. The gate is already correctly re-applied at the end of that function (:2796), so registration is the only missing piece.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in SpectrumOverlayMenu.cpp at the utility-row construction around line 455 and the setXvtrBands() rebuild around lines 2538 and 2678-2702. Compare how utility and HF buttons are registered, then verify the existing gate is re-applied near line 2796. Done means WWV, GEN, 2200, and 630 remain range-gated after rebuilds while XVTR buttons remain excluded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 88/100