Commit Graph
63 Commits
Author SHA1 Message Date
Edouard Griffiths 62ce6c7b88 Merge pull request #2955 from rgetz/rgetz-fix-message-queue-leaks
tree wide: Fix message ownership and reporting for unhandled queue messages
2026-09-27 00:56:58 +02:00
Edouard Griffiths 67a73916ae Merge pull request #2934 from srcejon/mcp
Add MCP Server for Claude & ChatGPT
2026-09-26 10:24:57 +02:00
Robin Getz c2b30d4fa8 tree wide: Fix message ownership and reporting for unhandled queue messages
MessageQueue::pop() transfers ownership of the popped message to the
caller, but many handleInputMessages() implementations only deleted
the message when handleMessage() returned true. When a message was not
handled, ownership had already been transferred from the queue and the
message was leaked.

This was identified while investigating an ASAN leak in the audio
subsystem.

Update the applicable handleInputMessages() implementations to always
delete messages after handleMessage() returns. Unhandled messages are
also logged with the component and message identifier so unexpected
message routing is visible during debugging.

This change:
- Ensures every message popped from a queue has its ownership resolved.
- Prevents leaks when handleMessage() returns false.
- Makes unhandled messages visible instead of silently discarding them.
- Preserves the existing message handling logic and does not require
  components to handle message types that are legitimately irrelevant
  to them.

The changes are intentionally mechanical and limited to the common
message queue ownership and diagnostic pattern.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-09-25 23:49:05 -04:00
Robin Getz e9ee3d0752 soapysdr[input|output]gui : Remove unused loop counters
Remove unused loop counters from the SoapySDR input and output GUI loops.

The counters were incremented but never used, triggering
-Wunused-but-set-variable compiler warnings.

The loops are already controlled by their iterators, so removing the counters
does not change behavior.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-09-13 20:23:27 -04:00
Jon BenistonandClaude Opus 5 ddedd59568 Add MessageDialog and use it in place of the QMessageBox static functions
QMessageBox::information() and friends build the box on the stack, parent
it to the calling widget and run a nested event loop in exec(). If the
parent is closed while the box is open, which the Web API can do at any
time, the parent deletes the box and its children and the heap is
corrupted.

MessageDialog offers the same calls, but the box is heap allocated, given
Qt::WA_DeleteOnClose and shown rather than exec'd, so nothing runs a
nested event loop and the box owns its own lifetime. A box with the same
text as one already up is raised instead of a second being created.

The trade off is that information(), warning() and critical() return
immediately and cannot report which button was pressed. question() takes
a callback for the cases that need the answer.

Converts the call sites in the device, channel and feature GUIs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 17:16:49 +01:00
f4exb 63348eeee1 Make device title editable in the basic device settings. Fixes #2292 2026-01-28 03:05:39 +01:00
Daniele Forsi 8c3f7e3775 Remove unused includes and use more direct includes 2024-04-11 23:31:34 +02:00
f4exb b6c4d10b62 Rewriting of copyright notices for plugins/samplesource. Part of #1893 2023-11-18 10:07:41 +01:00
Jon Beniston e799e5eb72 Fix resize cursor not being cleared when mouse moves over child widgets 2023-11-13 20:51:03 +00:00
Jon Beniston 0dd466a900 Add DialogPositioner to ensure dialogs are fully on screen and remain on
screen when screen orientation changes.
Add DialPopup to allow dials to adjusted with a slider, which is easier
on touchscreens.
Add TableTapAndHold to support table context menus on touchscreens.
2022-12-20 10:31:15 +00:00
Jon Beniston 929e0d34dc Adjust number of frequency digits depending whether transverter is enabled 2022-10-17 13:43:32 +01:00
f4exb 949a9e9380 Center frequency dials up to 9 digits and transverter delta frequency dial up to 12 digits. Fixes #1476 2022-10-15 03:04:29 +02:00
Jon Beniston d6a02f659a Device GUIs: Stop timers in destructors. 2022-10-05 15:40:09 +01:00
f4exb 9e5c629473 v7: API: added workspace handling for device, spectrum, feature and channel. Implements #1242 2022-05-13 22:24:48 +02:00
f4exb 218237c466 Massive UI revamping (v7): Devices: set the border on the outer side of the window. Part of #1213 2022-04-24 02:13:18 +02:00
f4exb 90d331675a Massive UI revamping (v7): fixed widget size handling: sample sources. Part ofs #1209 2022-04-21 07:53:36 +02:00
f4exb 40e34bdebd Massive UI revamping (v7): implemented device common settings from top bar and added documentation on device windows top and bottom bars 2022-04-17 01:31:50 +02:00
f4exb 32973132d9 Massive UI revamping (v7): unify custom widget borders 2022-04-10 02:19:26 +02:00
f4exb aad90aeabc Massive UI revamping (v7): devices basic 2022-04-07 16:32:03 +02:00
f4exb 841a8fe242 Morph PluginInstanceGUI in DeviceGUI and single line inheritance from QWidget 2020-10-05 19:48:05 +02:00
f4exb d085b4eb7d Removed undesirable methods from PluginInstanceGUI and related common plugins 2020-10-04 22:16:09 +02:00
f4exb e6e7ece46c Removed file recording function from device plugins 2020-08-09 00:47:06 +02:00
f4exb 128f091566 IQ swap: updated plugins GUI 2020-06-23 20:00:24 +02:00
f4exb f1d46c440a Fixed incorrect frequency display when transverter is engaged. Fixes issue #509 2020-04-28 05:36:46 +02:00
f4exb bbe4605258 Samplesources GUI file record: right click to choose file 2020-04-02 05:00:43 +02:00
f4exb 323e75cddd REST API device and channel actions: extension of record action: implementation 2020-03-10 19:44:27 +01:00
f4exb 89e53cf179 Single DeviceAPI interface (1) 2019-05-08 22:11:53 +02:00
f4exb 4bb0f4f51a Fixed incomplete copyright headers (2): plugins/samplesource 2019-04-11 06:57:41 +02:00
f4exb bc4c9aeba6 Reverse API: SoapySDR input 2018-12-26 18:15:43 +01:00
f4exb 26af3014a5 SoapySDR support: make checkboxes more visible 2018-11-22 17:03:59 +01:00
f4exb 2ab09f7e6c SoapySDR support: fixed tunable elements inital settings 2018-11-15 22:25:33 +01:00
f4exb cb9d300109 Windows: MSVC2017: soapysdrinput (1) 2018-11-15 19:07:15 +01:00
f4exb 69cd5645eb SoapySDR support: fixed input and output stream and device displays 2018-11-15 14:11:52 +01:00
f4exb 696e7324a4 SoapySDR support: device arg GUI 2018-11-12 01:10:51 +01:00
f4exb c382913fb4 SoapySDR support: stream ArgInfo SoapySDR interface 2018-11-11 19:44:48 +01:00
f4exb 1005d1d4e5 SoapySDR support: input: stream ArgInfo GUI 2018-11-11 02:30:10 +01:00
f4exb 8a72372b28 SoapySDR support: fixed display settings 2018-11-10 07:17:55 +01:00
f4exb 4d3113eabc SoapySDR support: cosmetic changes 2018-11-09 00:48:42 +01:00
f4exb e1ac6c2caa SoapySDR support: fixed createTunableElementsControl 2018-11-09 00:31:20 +01:00
f4exb 1168c18e3a SoapySDR support: output: auto correction GUIs 2018-11-08 21:42:49 +01:00
f4exb e5748444c5 SoapySDR support: input: auto correction GUIs (2) 2018-11-08 16:27:33 +01:00
f4exb 66f95bc0a6 SoapySDR support: input: auto correction GUIs (1) 2018-11-08 14:35:26 +01:00
f4exb 48340f253a SoapySDR support: fixed StringRangeGUI::setValue 2018-11-08 02:28:01 +01:00
f4exb f97091e0f3 SoapySDR support: input: AGC GUI 2018-11-08 01:31:39 +01:00
f4exb 9d014d841b SoapySDR support: input: manage global and individual gains coupling 2018-11-07 23:21:37 +01:00
f4exb b316af2d1d SoapySDR support: individual gains GUIs fixes 2018-11-07 20:06:07 +01:00
f4exb cfeaca424e SoapySDR support: input: individual gains GUIs 2018-11-07 13:38:42 +01:00
f4exb d7be0927b1 SoapySDR support: input: global gain GUI 2018-11-07 01:33:17 +01:00
f4exb e17828c7ee SoapySDR support: output: tunable elements GUIs 2018-11-06 20:19:20 +01:00
f4exb 6ea676d5c4 SoapySDR support: tunable elements GUIs fixes 2018-11-06 08:32:47 +01:00