[ux] Polish connect-radio dialog grouping#2121
Merged
ten9876 merged 1 commit intoten9876:mainfrom Apr 28, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Clean and well-scoped UX fix. Reviewed the diff against the full ConnectionPanel.cpp source.
What this does right:
- Correctly identifies the root cause: bare
QFrame { ... }incalloutStylewas bleeding into childQLabels (which inherit fromQFrame) on some Qt backends. Scoping toQFrame#connectionCalloutis the right fix. - Both callout frames (
emptyCalloutandm_linkOptionsWidget) get theconnectionCalloutobject name — no missed instances. - The child-widget overrides (
QLabel { background: transparent; border: none; }inside the#connectionCalloutscope, plus the explicit overrides on title labels and checkbox text) are defensive against platform variance without being over-broad. - Moving the Connect Remote Radio button outside the
remoteGroupand capping the list height (setMinimumHeight(120)/setMaximumHeight(160)/SizePolicy::Fixed) makes the layout read better when there are few or no WAN radios. - The
addStretch(1)at the bottom ofsmartLinkLayoutreplaces the old stretch factor onremoteGroup, which is correct now that the group no longer needs to expand.
No issues found:
- Only
ConnectionPanel.cppis touched — stays within the stated scope. - Uses
AppSettings(notQSettings) — consistent with project conventions. - No logic changes, no new allocations, no resource management changes — pure styling and layout.
- No Copilot flags to verify on this PR.
Looks good to merge. Thanks for the cross-platform testing, @jensenpat.
ten9876
added a commit
that referenced
this pull request
Apr 29, 2026
Community-driven release. WAVE Phase 2 visualization (#2124), DAX-aware TCI multi-stream routing for FlexRadio firmware 4.2.18 (#2140), TCXO frequency-offset calibration (#2119), VFO marker tri-state UX (#2141), v4.2.18 discovery beacon parsing (#2138). Bug fixes from the community: r8b heap corruption (#2114, NF0T), serial PTT triple-fix (#2125, chibondking), slice-audio mute on band change (#2128, jensenpat), CWX Live toggle (#2122, jensenpat), connect-radio dialog polish (#2121, jensenpat). Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
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
Details
The dialog previously used a broad
QFramestylesheet for the local empty-state and slower-link callout panels. BecauseQLabelinherits fromQFrame, Qt applied the panel border/background styling to static text labels inside those groups on some platforms. This made labels like “No local radios found yet,” “Connection options for slower links,” and the associated hint text look like nested bordered boxes even though they were already inside a grouped container.This change gives the callout frames a dedicated object name and scopes the border/background rule to those frames. Child labels and the low-bandwidth checkbox text are now explicitly transparent and borderless, while the checkbox indicator keeps its intentional control styling.
The SmartLink Remote radios group also had a tall list area with the Connect Remote Radio button placed inside the group. The list is now capped to a more compact height, and the connect action sits below the group so the button reads as the next action rather than part of the radio list.
Validation
cmake --build build -j10.👨🏼💻 Generated with OpenAI Codex (GPT-5.5 Pro 4/23) and tested by @jensenpat