Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/style/aethersdr-style-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ windows" lists what it keeps (the `FramelessMoveHelper` drag, Escape and
Which windows the canon covers: short-lived, informational windows (About,
Remote Access, and the candidates listed on #6239, once the maintainer picks
them), and the tool windows the maintainer has moved to it (Updates, Waveforms,
Network Diagnostics, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Radio Setup, TX Band Settings, Connect to Radio, AGC-T Calibration, Icom RC-28 Button Mapping, FFTW Wisdom). Other tool and workspace dialogs keep
Network Diagnostics, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Radio Setup, TX Band Settings, Connect to Radio, AGC-T Calibration, Icom RC-28 Button Mapping, FFTW Wisdom, Ulanzi Dial — Control Mapping). Other tool and workspace dialogs keep
`PersistentDialog` and `FramelessWindowTitleBar` as `docs/agents/gui.md`
describes. For windows the canon covers,
`FramelessWindowTitleBar` is deprecated: those dialogs move to
Expand Down
8 changes: 5 additions & 3 deletions docs/style/dialog-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ replace these with a single `QSet<QPointer<PersistentDialog>>` walk.
A window built on `CanonWindow` (`src/gui/CanonWindow.{h,cpp}`, RFC #6226)
deliberately opts out of frameless chrome integration, and by default of
geometry persistence too. About AetherSDR, Remote Access (Tailscale),
Waveforms, Network Diagnostics, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Radio Setup, TX Band Settings, Connect to Radio (`ConnectionPanel`), AGC-T Calibration, Icom RC-28 Button Mapping, NR2's FFTW Wisdom window and the AetherRX / AetherTX Settings (profile library) dialogs are built on it.
Waveforms, Network Diagnostics, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Radio Setup, TX Band Settings, Connect to Radio (`ConnectionPanel`), AGC-T Calibration, Icom RC-28 Button Mapping, NR2's FFTW Wisdom window, Ulanzi Dial — Control Mapping and the AetherRX / AetherTX Settings (profile library) dialogs are built on it.

| Concern | `CanonWindow` | Why |
|---|---|---|
Expand Down Expand Up @@ -271,8 +271,10 @@ What it keeps:
It is translucent, so the rounded corners need a compositor; an X11 session
without one shows square black corners. Use `CanonWindow` only for windows the
style guide covers: short-lived windows, and the tool windows the maintainer
has moved to it (Waveforms, Network Diagnostics, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Icom RC-28 Button Mapping, Radio Setup, TX Band Settings, FFTW Wisdom). A tool window on it also
installs `FramelessResizer`, since `CanonWindow` itself only moves; a
has moved to it (Waveforms, Network Diagnostics, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Icom RC-28 Button Mapping, Radio Setup, TX Band Settings, FFTW Wisdom, Ulanzi Dial — Control Mapping). A tool window on it also
installs `FramelessResizer`, since `CanonWindow` itself only moves, unless its
contents are placed at fixed positions: Ulanzi Dial — Control Mapping keeps a
fixed size, because its pills sit at fixed points on the dial picture. A
short-lived one such as FFTW Wisdom needs neither the resizer nor saved
geometry. Other tool
and workspace dialogs keep the persistent pattern above.
Expand Down
4 changes: 2 additions & 2 deletions docs/style/theme-style-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ checked-toggle accent red where the root theme has it blue — scope
paths are slash-joined, and a widget opts in by carrying the path in
its `themeContainer` property). The `canon` scope does the same for
whole windows: AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, SpotHub, AetherControl, the multiFLEX Dashboard, Radio Setup,
TX Band Settings, Connect to Radio, AGC-T Calibration, Icom RC-28 Button Mapping and FFTW Wisdom sit under `canon/aetherRx`, `canon/aetherTx`, `canon/aetherModem`,
`canon/aetherMap`, `canon/aetherGps`, `canon/spotHub`, `canon/aetherControl`, `canon/multiFlex`, `canon/radioSetup`, `canon/txBand`, `canon/connection`, `canon/agcCalibration`, `canon/rc28Mapping` and `canon/nr2Wisdom`, and it maps the base tokens onto the canon palette
TX Band Settings, Connect to Radio, AGC-T Calibration, Icom RC-28 Button Mapping, FFTW Wisdom and Ulanzi Dial — Control Mapping sit under `canon/aetherRx`, `canon/aetherTx`, `canon/aetherModem`,
`canon/aetherMap`, `canon/aetherGps`, `canon/spotHub`, `canon/aetherControl`, `canon/multiFlex`, `canon/radioSetup`, `canon/txBand`, `canon/connection`, `canon/agcCalibration`, `canon/rc28Mapping`, `canon/nr2Wisdom` and `canon/ulanziDial`, and it maps the base tokens onto the canon palette
there (see [`aethersdr-style-guide.md`](aethersdr-style-guide.md)). The
widget-aware accessors below resolve scope automatically — prefer them
inside applets and anything painted inside a scoped window.
Expand Down
2 changes: 2 additions & 0 deletions docs/user/docs/ulanzi-dial.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ Open **Settings → Controllers → Ulanzi Dial Mapping...** ("Ulanzi Dial — C
- a **Last event** readout that names the last key or rotation the dial sent and the action it ran;
- **Reset to Defaults**.

Close it with **Close**, the corner ✕, Esc or Ctrl+W (⌘W on macOS).

Mappings are saved with your settings and survive a restart; a mapping you clear stays cleared.

### Keys and knob press
Expand Down
13 changes: 11 additions & 2 deletions src/gui/MainWindow_Menus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -627,8 +627,17 @@ void MainWindow::buildMenuBar()
#else
MidiControlManager* midi = nullptr;
#endif
showOrRaisePersistent(m_ulanziMapperDialog, m_dialBackend,
&m_shortcutManager, midi);
// A canon dialog, so not showOrRaisePersistent(): that applies View →
// Frameless Window, which a CanonWindow does not follow.
if (!m_ulanziMapperDialog) {
auto* dlg = new UlanziDialMapperDialog(m_dialBackend, &m_shortcutManager,
midi, this);
dlg->setAttribute(Qt::WA_DeleteOnClose);
m_ulanziMapperDialog = dlg;
}
m_ulanziMapperDialog->show();
m_ulanziMapperDialog->raise();
m_ulanziMapperDialog->activateWindow();
});
settingsMenu->addSeparator();
auto* usbCablesAction = settingsMenu->addAction("USB Cables...");
Expand Down
Loading
Loading