feat(spothub): raise DX Spots Levels slider cap 10 → 15 (#2890)#2903
Merged
jensenpat merged 1 commit intoMay 21, 2026
Merged
Conversation
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
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`).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 oncem_spotMaxLevelsis exhausted (maxBottom = startY + (th + kSpotLabelGap) * m_spotMaxLevels).+Noverflow badge already aggregates the leftover spots regardless of cap value.SpotsMaxLevelinAppSettingsand re-applied to every Panorama applet viasetSpotMaxLevels(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
src/gui/DxClusterDialog.cpp:2084(setRange(1, 10)→setRange(1, 15))Verification
Linux (
nobara-dell— Nobara 43, Qt 6.10.3, gcc 15.2.1):ninja -C buildclean../build/AetherSDRon 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):
cmake -B build -GNinja -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt -DCMAKE_BUILD_TYPE=Release && ninja -C build -j 8producedbuild/AetherSDR.appbundle clean.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).