Skip to content

[ux] Polish connect-radio dialog grouping#2121

Merged
ten9876 merged 1 commit intoten9876:mainfrom
jensenpat:aether/connect-radio-dialog-borders
Apr 28, 2026
Merged

[ux] Polish connect-radio dialog grouping#2121
ten9876 merged 1 commit intoten9876:mainfrom
jensenpat:aether/connect-radio-dialog-borders

Conversation

@jensenpat
Copy link
Copy Markdown
Collaborator

@jensenpat jensenpat commented Apr 28, 2026

Screenshot 2026-04-27 at 7 47 53 PM

Summary

  • Scope the Connect to Radio callout styling so grouped panels keep their borders without giving child labels their own framed backgrounds.
  • Make reused label and low-bandwidth checkbox text styles explicitly transparent and borderless for consistent Qt rendering on macOS, Windows, and Linux.
  • Tighten the SmartLink remote-radio list height and move the Connect Remote Radio action outside the Remote radios group.

Details

The dialog previously used a broad QFrame stylesheet for the local empty-state and slower-link callout panels. Because QLabel inherits from QFrame, 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

  • Built successfully on macOS with cmake --build build -j10.
  • Manually checked the Connect to Radio dialog layout in the built app while iterating on the reported screenshots.

👨🏼‍💻 Generated with OpenAI Codex (GPT-5.5 Pro 4/23) and tested by @jensenpat

@jensenpat jensenpat changed the title Polish connect-radio dialog grouping [ux] Polish connect-radio dialog grouping Apr 28, 2026
@jensenpat jensenpat marked this pull request as ready for review April 28, 2026 02:52
@jensenpat jensenpat requested a review from ten9876 as a code owner April 28, 2026 02:52
Copy link
Copy Markdown
Contributor

@aethersdr-agent aethersdr-agent Bot left a comment

Choose a reason for hiding this comment

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

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 { ... } in calloutStyle was bleeding into child QLabels (which inherit from QFrame) on some Qt backends. Scoping to QFrame#connectionCallout is the right fix.
  • Both callout frames (emptyCallout and m_linkOptionsWidget) get the connectionCallout object name — no missed instances.
  • The child-widget overrides (QLabel { background: transparent; border: none; } inside the #connectionCallout scope, 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 remoteGroup and 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 of smartLinkLayout replaces the old stretch factor on remoteGroup, which is correct now that the group no longer needs to expand.

No issues found:

  • Only ConnectionPanel.cpp is touched — stays within the stated scope.
  • Uses AppSettings (not QSettings) — 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 ten9876 merged commit a04e09c into ten9876:main Apr 28, 2026
5 checks passed
@jensenpat jensenpat deleted the aether/connect-radio-dialog-borders branch April 29, 2026 04:53
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]>
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.

2 participants