Report preparation
What happened?
What happened
On the macOS precompiled build:
View → Keyboard Shortcuts — the Keyboard Shortcuts window does not
appear. Nothing visible happens to the user.
AetherSDR → Preferences — the Keyboard Shortcuts window opens
instead of the Preferences window.
The Preferences window is therefore completely unreachable from the macOS
menu. Originally reported in #423; this issue tracks the specific
mis-wiring identified on the macOS precompiled build.
What I expected
View → Keyboard Shortcuts should open the Keyboard Shortcuts window.
AetherSDR → Preferences should open the Preferences/Settings window.
Steps to reproduce
- Launch the macOS precompiled build of AetherSDR.
- From the menu bar, select AetherSDR → Preferences.
- Observed: The Keyboard Shortcuts window opens — wrong window.
- From the menu bar, select View → Keyboard Shortcuts.
- Observed: Nothing visible happens; the Keyboard Shortcuts window does
not appear.
Environment
- OS: macOS (precompiled binary build)
- AetherSDR version: latest precompiled release
- Radio / firmware: not relevant to this UI bug
Suggested fix
On macOS, Qt automatically intercepts any QAction assigned
QAction::PreferencesRole and moves it to the AetherSDR → Preferences
native menu entry. If the Keyboard Shortcuts action has been assigned
PreferencesRole by mistake, Qt will reparent it into the application menu
and connect it to whatever slot it carries — in this case showKeyboardShortcuts().
The actual Preferences action then loses its menu entry and its slot is never
called.
Additionally, View → Keyboard Shortcuts may be connecting to a slot that
opens a window, but that window is raised behind the main window and never
brought to the foreground (raise() + activateWindow() missing).
Recommended checks in MainWindow.cpp:
// 1. Ensure menu roles are explicitly set:
ui->actionPreferences->setMenuRole(QAction::PreferencesRole);
ui->actionKeyboardShortcuts->setMenuRole(QAction::NoRole); // prevent macOS reparenting
// 2. Ensure slots are correctly connected:
connect(ui->actionPreferences,
&QAction::triggered, this, &MainWindow::showPreferences);
connect(ui->actionKeyboardShortcuts,
&QAction::triggered, this, &MainWindow::showKeyboardShortcuts);
// 3. In showKeyboardShortcuts(), ensure the window is brought to front:
void MainWindow::showKeyboardShortcuts() {
m_keyboardShortcutsDialog->show();
m_keyboardShortcutsDialog->raise();
m_keyboardShortcutsDialog->activateWindow();
}
This bug is macOS-specific because QAction::PreferencesRole is a no-op on
Linux and Windows — role-based menu reparenting only occurs on macOS, which
is why the Linux build is unaffected.
What did you expect?
View-> Keyboard Shortcuts opens the Keyboard Shortcuts Window and Preferences shall open its respective window implementation
Steps to reproduce
No response
Radio model & firmware
No response
Linux distro & Qt version
AetherSDR v0.8.4
Report preparation
What happened?
What happened
On the macOS precompiled build:
View → Keyboard Shortcuts— the Keyboard Shortcuts window does notappear. Nothing visible happens to the user.
AetherSDR → Preferences— the Keyboard Shortcuts window opensinstead of the Preferences window.
The Preferences window is therefore completely unreachable from the macOS
menu. Originally reported in #423; this issue tracks the specific
mis-wiring identified on the macOS precompiled build.
What I expected
View → Keyboard Shortcutsshould open the Keyboard Shortcuts window.AetherSDR → Preferencesshould open the Preferences/Settings window.Steps to reproduce
not appear.
Environment
Suggested fix
On macOS, Qt automatically intercepts any
QActionassignedQAction::PreferencesRoleand moves it to the AetherSDR → Preferencesnative menu entry. If the Keyboard Shortcuts action has been assigned
PreferencesRoleby mistake, Qt will reparent it into the application menuand connect it to whatever slot it carries — in this case
showKeyboardShortcuts().The actual Preferences action then loses its menu entry and its slot is never
called.
Additionally,
View → Keyboard Shortcutsmay be connecting to a slot thatopens a window, but that window is raised behind the main window and never
brought to the foreground (
raise()+activateWindow()missing).Recommended checks in
MainWindow.cpp:This bug is macOS-specific because
QAction::PreferencesRoleis a no-op onLinux and Windows — role-based menu reparenting only occurs on macOS, which
is why the Linux build is unaffected.
What did you expect?
View-> Keyboard Shortcuts opens the Keyboard Shortcuts Window and Preferences shall open its respective window implementation
Steps to reproduce
No response
Radio model & firmware
No response
Linux distro & Qt version
AetherSDR v0.8.4