Skip to content

fix(radio-setup): wrap tab pages in QScrollArea so tall tabs stay reachable (#3345). Principle III.#3347

Merged
aethersdr-agent[bot] merged 1 commit into
mainfrom
aetherclaude/issue-3345
Jun 1, 2026
Merged

fix(radio-setup): wrap tab pages in QScrollArea so tall tabs stay reachable (#3345). Principle III.#3347
aethersdr-agent[bot] merged 1 commit into
mainfrom
aetherclaude/issue-3345

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #3345

What was changed

fix(radio-setup): wrap tab pages in QScrollArea so tall tabs stay reachable (#3345). Principle III.

Files modified

  • src/gui/RadioSetupDialog.cpp
 src/gui/RadioSetupDialog.cpp | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

Generated by AetherClaude (automated agent for AetherSDR)


🤖 aethersdr-agent · cost: $12.8014 · model: claude-opus-4-7

…chable (#3345). Principle III.

On small or high-DPI displays the Themes/Audio/Filters/Peripherals tabs
stack QGroupBox content taller than the screen; Qt enforces the layout's
sizeHint() as the dialog's effective minimum, the frameless title bar
goes off-screen, and the Close button becomes unreachable. The bug
report shows the Themes tab at ~2147px against a ~1413px screen.

Adopt the QScrollArea pattern already used by buildAntennaNamesTab()
(src/gui/RadioSetupDialog.cpp:2903-2908) at the two tab-insertion
points: the eagerly-built Radio tab and buildDeferredTab(). The new
wrapTabInScrollArea() helper uses setWidgetResizable(true) and a
transparent frameless QScrollArea, so wide-screen users see no visual
change and small-display users get a vertical scrollbar instead of a
clipped dialog. The existing setMinimumSize(820, 620) is small enough
that the Close button is always reachable once content scrolls, which
also resolves the "can't shrink to close" half of the report.

Blast radius: risk_score=0.191, 3 high-risk affected (top:
MainWindow::MainWindow, MainWindow::wirePanadapter,
MainWindow::buildMenuBar). All cited callers construct the dialog or
wire it into menus; none inspect tab-content widget hierarchy, so
wrapping content in a QScrollArea does not regress them.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@aethersdr-agent aethersdr-agent Bot requested a review from a team as a code owner June 1, 2026 20:37
@aethersdr-agent aethersdr-agent Bot enabled auto-merge (squash) June 1, 2026 20:37
@jensenpat jensenpat added the priority: high High priority label Jun 1, 2026

@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.

Reviewed the net change (RadioSetupDialog.cpp scroll-area wrapping). setWidgetResizable(true) keeps horizontal expansion and hides the scrollbar when content fits, so only over-tall tabs gain scrolling — no change for wide-screen users. QScrollArea ownership is handled by Qt parenting via the tab/layout, comments cite #3345, and the change is scoped to the two tab-insertion sites without touching window chrome or RX flow. Tested locally as part of a combined build. LGTM.

@aethersdr-agent aethersdr-agent Bot merged commit 729b617 into main Jun 1, 2026
4 checks passed
@aethersdr-agent aethersdr-agent Bot deleted the aetherclaude/issue-3345 branch June 1, 2026 20:53
w5jwp pushed a commit to w5jwp/AetherSDR that referenced this pull request Jun 2, 2026
Hotfix release on top of v26.6.1, bundling three already-merged fixes
and nothing else:

- fix(ci): unblock macOS DMG build broken by missing background image (aethersdr#3349)
- fix(gui): only toast "Step: …" on deliberate step changes (aethersdr#3337)
- fix(radio-setup): wrap tab pages in QScrollArea so tall tabs stay reachable (aethersdr#3347)

Bumps project version 26.6.1 -> 26.6.1.1 (CalVer hotfix sub-patch).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
G6PWY-Chris pushed a commit to G6PWY-Chris/AetherSDR that referenced this pull request Jun 22, 2026
…chable (aethersdr#3345). Principle III. (aethersdr#3347)

## Summary

Fixes aethersdr#3345

### What was changed

fix(radio-setup): wrap tab pages in QScrollArea so tall tabs stay
reachable (aethersdr#3345). Principle III.

### Files modified

- `src/gui/RadioSetupDialog.cpp`

```
 src/gui/RadioSetupDialog.cpp | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
```

---
Generated by AetherClaude (automated agent for AetherSDR)

---
<sub>🤖 aethersdr-agent · cost: $12.8014 · model: claude-opus-4-7</sub>

Co-authored-by: aethersdr-agent[bot] <273844287+aethersdr-agent[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: high High priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot resize or scroll Serial dialog group in Radio Setup menu

1 participant