Skip to content

fix(gui): pack XVTR setup fields with trailing stretch (#3454)#3456

Merged
ten9876 merged 1 commit into
aethersdr:mainfrom
jensenpat:aether/issue-3454-xvtr-spacing
Jun 8, 2026
Merged

fix(gui): pack XVTR setup fields with trailing stretch (#3454)#3456
ten9876 merged 1 commit into
aethersdr:mainfrom
jensenpat:aether/issue-3454-xvtr-spacing

Conversation

@jensenpat

Copy link
Copy Markdown
Collaborator

Summary

The XVTR tab in the Radio Setup dialog renders with large, uneven vertical gaps between every field row (Name, RF Freq/IF Freq, LO Freq/LO Error, RX Gain/RX Only, Max Power), unlike the tightly-packed sibling tabs (GPS, Audio, TX, RX, Antennas, Filters, APD, USB Cables, Peripherals).

Fixes #3454.

Root cause

RadioSetupDialog::buildXvtrTab() was the only Radio Setup tab whose outer QVBoxLayout did not terminate with addStretch(1). Every sibling builder does:

Tab trailing vbox->addStretch(1)
TX (buildTxTab)
RX (buildRxTab)
Audio (buildAudioTab)
Filters (buildFiltersTab)
APD (buildApdTab)
XVTR (buildXvtrTab) ❌ (before this PR)

Without that trailing stretch, the QVBoxLayout had no flexible element to absorb leftover vertical space, so it handed all of it to the QTabWidget. The tab widget grew to fill the dialog, and the inner per-transverter QGridLayout — which has 5 content rows and no row-stretch factors — distributed the surplus height evenly across the rows. That even distribution is exactly the excessive inter-row spacing reported in the issue.

Fix

Add a single trailing stretch after the tab widget:

vbox->addWidget(xvtrTabs);
vbox->addStretch(1);   // <-- added
return page;

The stretch now absorbs the leftover vertical space, so the QTabWidget collapses to its compact size hint and the inner grid receives only its natural height — packing the field rows tightly at the top and matching the layout density of the other tabs. Behaviour on dialog resize (content stays top-aligned, empty space below) is now identical to the sibling tabs.

One-line, layout-only change; no behavioural or data-path impact.

Testing

  • Built locally (cmake --build build -j22, RelWithDebInfo, macOS) — clean, [1042/1042].
  • Deployed to a FLEX test bench (FLEX-8600) and confirmed in Radio Setup → XVTR: field rows are now compact and the vertical rhythm matches the Audio/TX tabs. No regression in the per-transverter sub-tabs or the "+" add-transverter tab.

💻 Generated with Claude Code (Opus 4.8) with architecture by @jensenpat

The XVTR tab in the Radio Setup dialog showed large, uneven vertical
gaps between every field row (Name, RF/IF Freq, LO Freq/Error, RX
Gain/RX Only, Max Power) compared to sibling tabs.

Root cause: buildXvtrTab() was the only Radio Setup tab whose outer
QVBoxLayout did not end with addStretch(1). Every other tab (TX, RX,
Audio, Filters, APD, ...) terminates its vbox with a trailing stretch.
Without it, the layout handed all leftover vertical space to the
QTabWidget, and the inner QGridLayout — which has 5 content rows and no
row-stretch factors — distributed that slack evenly between the rows,
producing the excessive gaps.

Add vbox->addStretch(1) after the tab widget so the QTabWidget collapses
to its compact size hint and the field rows pack tightly at the top,
matching the spacing of the other tabs.

Fixes aethersdr#3454

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Co-authored-by: Codex <noreply@openai.com>
@jensenpat jensenpat marked this pull request as ready for review June 8, 2026 04:18
@jensenpat jensenpat requested a review from a team as a code owner June 8, 2026 04:18
@ten9876 ten9876 self-assigned this Jun 8, 2026
@ten9876 ten9876 merged commit 956cddf into aethersdr:main Jun 8, 2026
6 checks passed
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.

XVTR setup dialog has excessive vertical spacing between fields compared to other Radio Setup tabs

2 participants