Skip to content

Add per-slice VFO marker style toggles to filter panel (#1526)#1614

Merged
ten9876 merged 1 commit into
mainfrom
auto/Add-per-slice-VFO-marker-style-toggles-to-filter-p
Apr 18, 2026
Merged

Add per-slice VFO marker style toggles to filter panel (#1526)#1614
ten9876 merged 1 commit into
mainfrom
auto/Add-per-slice-VFO-marker-style-toggles-to-filter-p

Conversation

@ten9876

@ten9876 ten9876 commented Apr 18, 2026

Copy link
Copy Markdown
Collaborator

Reporter's CW complaint was that the center VFO line and two filter
edge lines merge visually at narrow filter widths, making the marker
look too thick. Previous auto-thin heuristic (#764) adjusted line
width based on edge proximity but left no user control.

Replace the heuristic with explicit, per-slice user toggles in the
VFO flag's filter panel, inserted between the filter width buttons
and the CW autotune row:

[Thin] [Thick] [Edges] [Hide]

  • Thin/Thick: 1px vs 2px center VFO line
  • Edges/Hide: show or suppress the two filter-edge vertical lines

State is per-VfoWidget and persists across restarts via AppSettings
keyed by slice ID (Slice_MarkerThin, Slice_FilterEdgesHidden).
Settings on Slice A do not affect Slice B or vice versa.

Wiring: VfoWidget::markerStyleChanged(bool, bool) → MainWindow →
SpectrumWidget::setSliceOverlayMarkerStyle(sliceId, thin, hideEdges)
which updates the per-slice SliceOverlay fields consulted during
drawSliceMarkers().

Closes #1526.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

Reporter's CW complaint was that the center VFO line and two filter
edge lines merge visually at narrow filter widths, making the marker
look too thick. Previous auto-thin heuristic (#764) adjusted line
width based on edge proximity but left no user control.

Replace the heuristic with explicit, per-slice user toggles in the
VFO flag's filter panel, inserted between the filter width buttons
and the CW autotune row:

  [Thin]  [Thick]  [Edges]  [Hide]

- Thin/Thick: 1px vs 2px center VFO line
- Edges/Hide: show or suppress the two filter-edge vertical lines

State is per-VfoWidget and persists across restarts via AppSettings
keyed by slice ID (Slice<N>_MarkerThin, Slice<N>_FilterEdgesHidden).
Settings on Slice A do not affect Slice B or vice versa.

Wiring: VfoWidget::markerStyleChanged(bool, bool) → MainWindow →
SpectrumWidget::setSliceOverlayMarkerStyle(sliceId, thin, hideEdges)
which updates the per-slice SliceOverlay fields consulted during
drawSliceMarkers().

Closes #1526.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ten9876 ten9876 enabled auto-merge (squash) April 18, 2026 17:31
@ten9876 ten9876 merged commit d5f5ab9 into main Apr 18, 2026
3 checks passed
@ten9876 ten9876 deleted the auto/Add-per-slice-VFO-marker-style-toggles-to-filter-p branch April 18, 2026 17:32
ten9876 added a commit that referenced this pull request Apr 18, 2026
Two small VFO flag fixes on top of #1614/#1615:

1. The CW autotune row ("Autotune:" label + Once/Loop/Zero Beat
   buttons) was built inside a QWidget container and added to the
   filter grid, but only the buttons were tracked as members for
   cleanup — the container itself was leaked on rebuild. Switching
   away from CW left the "Autotune:" label visible under USB/AM/FM.
   Track the container as m_autotuneContainer and delete it at the
   top of rebuildFilterButtons; its children (label + buttons) get
   reaped with it.

2. The Thin/Thick/Edges/Hide marker-style row was previously
   restricted to CW/CWL (#1615). Narrow filters aren't CW-exclusive
   (DIGL, RTTY, CWL at narrow widths all cluster the edges the same
   way) and the per-slice setting is useful regardless of mode.
   Drop the CW-only gate. The same single code path in
   rebuildFilterButtons now runs for every mode — no per-mode
   duplication, just existing pointer members reinitialized on each
   mode change, cleanup still suppresses duplicate rows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ten9876 added a commit that referenced this pull request Apr 18, 2026
…#1620)

Two small VFO flag fixes on top of #1614/#1615:

1. The CW autotune row ("Autotune:" label + Once/Loop/Zero Beat
   buttons) was built inside a QWidget container and added to the
   filter grid, but only the buttons were tracked as members for
   cleanup — the container itself was leaked on rebuild. Switching
   away from CW left the "Autotune:" label visible under USB/AM/FM.
   Track the container as m_autotuneContainer and delete it at the
   top of rebuildFilterButtons; its children (label + buttons) get
   reaped with it.

2. The Thin/Thick/Edges/Hide marker-style row was previously
   restricted to CW/CWL (#1615). Narrow filters aren't CW-exclusive
   (DIGL, RTTY, CWL at narrow widths all cluster the edges the same
   way) and the per-slice setting is useful regardless of mode.
   Drop the CW-only gate. The same single code path in
   rebuildFilterButtons now runs for every mode — no per-mode
   duplication, just existing pointer members reinitialized on each
   mode change, cleanup still suppresses duplicate rows.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

Center vertical line in CW mode

1 participant