Skip to content

feat(spothub): raise DX Spots Levels slider cap 10 → 15 (#2890)#2903

Merged
jensenpat merged 1 commit into
aethersdr:mainfrom
Ozy311:feat/2890-spots-max-level-slider-cap-15
May 21, 2026
Merged

feat(spothub): raise DX Spots Levels slider cap 10 → 15 (#2890)#2903
jensenpat merged 1 commit into
aethersdr:mainfrom
Ozy311:feat/2890-spots-max-level-slider-cap-15

Conversation

@Ozy311

@Ozy311 Ozy311 commented May 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Raise the SpotHub Display → Levels slider's upper bound from 10 to 15. Lets users opting into more vertical headroom on tall displays stack more callsign labels before the per-X "+N" overflow badge takes over.

Why

The 10-level cap was inherited from SmartSDR. On tall (4K / vertical-orientation / multi-monitor) displays there is plenty of room to stack more spot labels, and contest reporters consistently ask for more visible callsigns before overflow collapsing kicks in. The reporter in #2890 specifically called for 15.

The underlying rendering is already level-agnostic:

  • SpectrumWidget::drawSpots() uses a label-collision walker that nudges down per-label and falls into the per-X overflow group once m_spotMaxLevels is exhausted (maxBottom = startY + (th + kSpotLabelGap) * m_spotMaxLevels).
  • The +N overflow badge already aggregates the leftover spots regardless of cap value.
  • The setting is persisted as SpotsMaxLevel in AppSettings and re-applied to every Panorama applet via setSpotMaxLevels(int).

So this PR is purely a UI clamp change — no settings migration, no rendering changes, no behavior diff for users who don't touch the slider.

Scope

  • 1 line changed in src/gui/DxClusterDialog.cpp:2084 (setRange(1, 10)setRange(1, 15))
  • Default value (3) unchanged
  • Existing user prefs at 1..10 stay valid
  • No protocol / persistence / radio-side change

Verification

Linux (nobara-dell — Nobara 43, Qt 6.10.3, gcc 15.2.1):

  • Incremental ninja -C build clean.
  • Launched ./build/AetherSDR on Plasma Wayland session → Settings → SpotHub → Display tab → confirmed the Levels slider drags to 15 (no clamp at 10). Slider value label updates correctly through the new range.

macOS (M2 Apple Silicon, macOS 26.4.1, Qt 6.9.3 via Homebrew):

  • Native build from source — cmake -B build -GNinja -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt -DCMAKE_BUILD_TYPE=Release && ninja -C build -j 8 produced build/AetherSDR.app bundle clean.
  • Launched AetherSDR.app (connected to a real Flex 6700 with active DX cluster feed) → SpotHub Display tab → confirmed the Levels slider drags 1→15 and the Panorama renders additional rows correctly. No clamp, no visual artifacts at the new upper bound.

Closes #2890


73, Ozy K6OZY
AI compute partnership: cloaked.agency — drafted with Don, our VP of Engineering agent. Linux + macOS validation pair (nobara-dell + M2 MacBook Pro).

The SpotHub Display > Levels slider caps at 10, mirroring the SmartSDR legacy limit. On tall displays there is plenty of vertical headroom to stack more callsign labels before overflow kicks in, and reporters covering busy contest weekends want more visible spots before the "+N" overflow badges collapse them.

Bump the slider upper bound from 10 to 15. The default remains 3 and the underlying rendering already supports arbitrary levels (label-collision walker + per-X overflow grouping in SpectrumWidget::drawSpots), so this is purely a UI clamp change — no rendering or settings-migration impact.

Single-line change in src/gui/DxClusterDialog.cpp. Persisted setting (SpotsMaxLevel, AppSettings) already round-trips values 1..N intact; existing user prefs at 1..10 stay valid.

Closes aethersdr#2890

Co-authored-by: Don @ cloaked.agency <don@cloaked.agency> & K6OZY
@Ozy311 Ozy311 marked this pull request as ready for review May 21, 2026 03:10
@Ozy311 Ozy311 requested review from jensenpat and ten9876 as code owners May 21, 2026 03:10

@jensenpat jensenpat left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Chris

@jensenpat jensenpat merged commit aa5969a into aethersdr:main May 21, 2026
5 checks passed
@Ozy311 Ozy311 deleted the feat/2890-spots-max-level-slider-cap-15 branch June 13, 2026 23:27
G6PWY-Chris pushed a commit to G6PWY-Chris/AetherSDR that referenced this pull request Jun 22, 2026
…) (aethersdr#2903)

## Summary

Raise the **SpotHub Display → Levels** slider's upper bound from 10 to
15. Lets users opting into more vertical headroom on tall displays stack
more callsign labels before the per-X "+N" overflow badge takes over.

## Why

The 10-level cap was inherited from SmartSDR. On tall (4K /
vertical-orientation / multi-monitor) displays there is plenty of room
to stack more spot labels, and contest reporters consistently ask for
more visible callsigns before overflow collapsing kicks in. The reporter
in aethersdr#2890 specifically called for 15.

The underlying rendering is already level-agnostic:

- `SpectrumWidget::drawSpots()` uses a label-collision walker that
nudges down per-label and falls into the per-X overflow group once
`m_spotMaxLevels` is exhausted (`maxBottom = startY + (th +
kSpotLabelGap) * m_spotMaxLevels`).
- The `+N` overflow badge already aggregates the leftover spots
regardless of cap value.
- The setting is persisted as `SpotsMaxLevel` in `AppSettings` and
re-applied to every Panorama applet via `setSpotMaxLevels(int)`.

So this PR is purely a UI clamp change — no settings migration, no
rendering changes, no behavior diff for users who don't touch the
slider.

## Scope

- 1 line changed in `src/gui/DxClusterDialog.cpp:2084` (`setRange(1,
10)` → `setRange(1, 15)`)
- Default value (3) unchanged
- Existing user prefs at 1..10 stay valid
- No protocol / persistence / radio-side change

## Test plan

- [x] Local incremental `ninja -C build` clean on Linux (Nobara 43, Qt
6.10.3, gcc 15.2.1)
- [ ] Visual smoke: open SpotHub Display tab → confirm Levels slider now
permits values 11..15 and Panorama renders the additional rows correctly
(any reviewer with active DX cluster feed can verify)

Closes aethersdr#2890

---

73, Ozy **K6OZY**
AI compute partnership: [cloaked.agency](https://cloaked.agency) —
drafted with Don, our VP of Engineering agent, on Linux dev stack
(`nobara-dell`).
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.

Remove limit of 10 lines of DX Spots on Panorama

2 participants