aethersdr / aethersdr/AetherSDR

Utility band buttons (WWV/GEN/2200/630) lose the tuning-range gate after a band-panel rebuild

Open Beginner friendly
#4,580 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug GUI maintainer-review priority: low
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 no m_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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.