Skip to content

Migrate three secondary RadioSetupDialog entry points to showOrRaisePersistent (#2781). Principle III.#2795

Merged
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-2781
May 17, 2026
Merged

Migrate three secondary RadioSetupDialog entry points to showOrRaisePersistent (#2781). Principle III.#2795
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-2781

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #2781

What was changed

Migrate three secondary RadioSetupDialog entry points to showOrRaisePersistent (#2781). Principle III.

Files modified

  • src/gui/MainWindow.cpp
  • src/gui/MainWindow.h
 src/gui/MainWindow.cpp | 196 +++++++++++++++++++++++--------------------------
 src/gui/MainWindow.h   |  12 ++-
 2 files changed, 104 insertions(+), 104 deletions(-)

Generated by AetherClaude (automated agent for AetherSDR)

…ersistent (#2781). Principle III.

Settings → FlexControl, Settings → USB Cables, and the XVTR overlay button each
called `new RadioSetupDialog(...)` directly, bypassing the m_persistentDialogs
registry that PR #2772 (RadioSetupDialog → PersistentDialog migration) set up.
Symptoms: clicking any two entries opens two windows, frameless toggle skips
the shortcut-opened dialog, and "first opener wins" signal wiring diverges.

This pass routes all four entry points (primary Radio Setup, FlexControl, USB
Cables, XVTR overlay) through showOrRaisePersistent + selectTab, and factors
the txBandSettingsRequested / serialSettingsChanged / sliceLetterDisplayModeChanged
/ QDialog::finished wiring into a single private helper wireRadioSetupDialogSignals
so a fresh construction picks up the full handler set regardless of which menu
clicked first.  The dialog now lives in m_persistentDialogs unconditionally, so
the special-case qobject_cast in setFramelessWindow is removed — the
persistentDialogs loop below already handles it.

Also re-asserts the primary Radio Setup entry's #2772 migration that #2786
silently reverted during a panadapter-layout merge.

Blast radius (codegraph impact on MainWindow::buildMenuBar, max_depth=3):
risk_score=0.7297, 18 high_risk affected (top: MainWindow::MainWindow,
AppSettings::instance, AppSettings::value).  The score reflects buildMenuBar's
breadth across the menu surface; the actual edit is four lambda bodies plus a
helper, none of which alter buildMenuBar's caller-facing contract.  No new
test-target link dependencies (wireRadioSetupDialogSignals is private to
MainWindow.cpp, RadioSetupDialog.h was already #included).
@aethersdr-agent aethersdr-agent Bot requested a review from ten9876 as a code owner May 17, 2026 06:12
@aethersdr-agent aethersdr-agent Bot enabled auto-merge (squash) May 17, 2026 06:12
@ten9876 ten9876 merged commit ae5d0d2 into main May 17, 2026
5 checks passed
@ten9876 ten9876 deleted the aetherclaude/issue-2781 branch May 17, 2026 06:45
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.

Migrate the three secondary RadioSetupDialog entry points to showOrRaisePersistent (#2772 follow-up)

1 participant