Skip to content

VfoWidget: collapse marker + edges buttons; add Marker: Off state#2141

Merged
ten9876 merged 1 commit intomainfrom
auto/VfoWidget-collapse-marker--edges-buttons-add-Marke
Apr 29, 2026
Merged

VfoWidget: collapse marker + edges buttons; add Marker: Off state#2141
ten9876 merged 1 commit intomainfrom
auto/VfoWidget-collapse-marker--edges-buttons-add-Marke

Conversation

@ten9876
Copy link
Copy Markdown
Owner

@ten9876 ten9876 commented Apr 29, 2026

The four-button row in the per-slice DSP panel (Thin / Thick / Edges /
Hide) is collapsed to two:

  • Marker — cycles Off → 1 px → 3 px on click. Label reflects
    the current state ("Marker: Off" / "Marker: 1px" / "Marker: 3px").
    Off skips both the center line and the top triangle, leaving only
    the passband bracket.
  • Filter Edge — checkable on/off. Checked = edges shown.

Internally bool m_markerThin becomes int m_markerWidth (0 / 1 / 3),
the markerStyleChanged signal becomes (int markerWidth, bool filterEdgesHidden), and SpectrumWidget::SliceOverlay::markerThin
becomes markerWidth with a render-path guard for the off case.

Settings: new Slice<N>_MarkerWidth int key. Old Slice<N>_MarkerThin
bool key is read once for migration (True → 1, False → 3) and then
the new key takes over.

Co-Authored-By: Claude Opus 4.7 (1M context) [email protected]

The four-button row in the per-slice DSP panel (Thin / Thick / Edges /
Hide) is collapsed to two:

- **Marker** — cycles Off → 1 px → 3 px on click.  Label reflects
  the current state ("Marker: Off" / "Marker: 1px" / "Marker: 3px").
  Off skips both the center line and the top triangle, leaving only
  the passband bracket.
- **Filter Edge** — checkable on/off.  Checked = edges shown.

Internally `bool m_markerThin` becomes `int m_markerWidth` (0 / 1 / 3),
the `markerStyleChanged` signal becomes `(int markerWidth, bool
filterEdgesHidden)`, and `SpectrumWidget::SliceOverlay::markerThin`
becomes `markerWidth` with a render-path guard for the off case.

Settings: new `Slice<N>_MarkerWidth` int key.  Old `Slice<N>_MarkerThin`
bool key is read once for migration (True → 1, False → 3) and then
the new key takes over.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@ten9876 ten9876 requested a review from jensenpat as a code owner April 29, 2026 04:21
@ten9876 ten9876 enabled auto-merge (squash) April 29, 2026 04:21
@ten9876 ten9876 merged commit 54ceabf into main Apr 29, 2026
5 checks passed
@ten9876 ten9876 deleted the auto/VfoWidget-collapse-marker--edges-buttons-add-Marke branch April 29, 2026 04:43
ten9876 added a commit that referenced this pull request Apr 29, 2026
Community-driven release.  WAVE Phase 2 visualization (#2124),
DAX-aware TCI multi-stream routing for FlexRadio firmware 4.2.18
(#2140), TCXO frequency-offset calibration (#2119), VFO marker
tri-state UX (#2141), v4.2.18 discovery beacon parsing (#2138).
Bug fixes from the community: r8b heap corruption (#2114, NF0T),
serial PTT triple-fix (#2125, chibondking), slice-audio mute on
band change (#2128, jensenpat), CWX Live toggle (#2122, jensenpat),
connect-radio dialog polish (#2121, jensenpat).

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
ten9876 pushed a commit that referenced this pull request Apr 30, 2026
)

Resolves #2143.

#2141 migrated per-slice marker-style preferences from
`Slice<N>_MarkerThin` (bool) to `Slice<N>_MarkerWidth` (int 0/1/3).
`loadDisplayPrefs()` reads the old key only as a fallback when the new
key is absent, but never deletes it -- so the orphan accumulates in
`~/.config/AetherSDR/AetherSDR.settings` indefinitely.

After migrating the value into `m_markerWidth`, remove the old key so
subsequent `saveDisplayPrefs()` calls don't carry the orphan forward.
The remove only fires once per slice (the next load will already see
`keyW` and skip the else branch entirely), so this is a one-time
cleanup per setting file.

Tiny single-file fix as flagged in the issue.

Co-authored-by: Matt Van Horn <[email protected]>
@aethersdr-agent aethersdr-agent Bot mentioned this pull request May 2, 2026
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant