Only apply channel settings after BasicChannelSettingsDialog returns an
accepted result. Previously, the return value from dialog.exec() was ignored
and settings were copied from the dialog regardless of whether the dialog was
accepted or rejected.
This could cause changes made in the channel settings dialog to be applied
even when the user discarded them. Check the dialog result before updating
the channel title, color, Reverse API configuration, and stream index to keep
the GUI state synchronized with the user's action.
This also fixes the Coverity CHECKED_RETURN warning for the unchecked
QDialog::exec() return value.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
RadioAstronomyGUI::spectrumSeries_clicked() called
calcVrAndDistanceToPeak() without verifying that currentFFT() returned a
valid FFTMeasurement. Since currentFFT() can return nullptr and
calcVrAndDistanceToPeak() immediately dereferences the pointer, this could
result in a null pointer dereference.
Guard the calls so they are only made when a valid FFT measurement is
available, matching the existing pattern used elsewhere in the class.
Reported by Coverity (CID 649213).
Signed-off-by: Robin Getz <rgetz503@gmail.com>
Fix Coverity CID 649243 (DIVIDE_BY_ZERO) by validating sweep step
values before calculating 2D sweep dimensions.
Move sweep step validation to on_startStop_clicked() so invalid sweep
configurations are reported to the user before a sweep begins. Display
an error message when either sweep step is zero and prevent the sweep
from starting.
Retain defensive validation when updating 2D sweep settings to guard
against invalid configurations received from saved settings or other
code paths.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
Fix a Coverity UNINIT warning in RadioAstronomyGUI::update2DImage()
where the intensity variable could be used uninitialized if
m_powerYUnits contained an unexpected value and followed the default path.
Handle the default switch case by logging a warning and falling back
to fft->m_totalPowerdBFS, ensuring intensity is always initialized
before being used while providing diagnostics for invalid enum values.
Fixes Coverity CID 649242.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
Fix Coverity CID 649221 (DIVIDE_BY_ZERO) by validating the cold
calibration power sum before calculating the Y-factor.
Refactor calcCalTrx() to use early returns for invalid calibration
states and avoid duplicated UI clearing logic. Also handle the
undefined Y-factor case when hot and cold measurements have equal power.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
Frees memory allocated
in AudioOutputPlugin::createSampleSinkPluginInstance(QString const&, DeviceAPI*) /home//sdrangel/plugins/samplesink/audiooutput/audiooutputplugin.cpp:136
in ChirpChatDemod::ChirpChatDemod(DeviceAPI*) /home/sdrangel/plugins/channelrx/demodchirpchat/chirpchatdemod.cpp:84
in FileOutput::FileOutput(DeviceAPI*) /home/sdrangel/plugins/samplesink/fileoutput/fileoutput.cpp:54
in RadioAstronomyGUI::RadioAstronomyGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) /home/sdrangel/plugins/channelrx/radioastronomy/radioastronomygui.cpp:2061
in SatelliteSelectionDialog::SatelliteSelectionDialog(SatelliteTrackerSettings*, QHash<QString, SatNogsSatellite*> const&, QWidget*) /home/sdrangel/plugins/feature/satellitetracker/satelliteselectiondialog.cpp:42:24
in SatelliteTracker::SatelliteTracker(WebAPIAdapterInterface*) /home/sdrangel/plugins/feature/satellitetracker/satellitetracker.cpp:61:24
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.
Add sizeToContents in ChannelGUI and FeatureGUI, called when widget is
rolled, so we can remove resizing code from all of the individual
channels and features.
In RollupContents, use minimumSizeHint for calculated size, so that
minimumWidth can come from .ui file.
In DeviceGUI::sizeToContents(), call adjustSize(), so Device GUIs start
out at minimum needed size (which should restore appearance prior to
last patch).
In stackSubWindows, use available space for channels if no
spectrum/features present.
In stackSubWindows, fix spectrum from being sized too big, resulting in
scroll bars appearing.
Reset user-defined channel width in stackSubWindows, when channels are
removed.
Don't stack maximized windows.
There's one hack in Channel/FeatureGUI::maximizeWindow(). It seems that
when maximimzing a window, QOpenGLWidgets aren't always paint properly
immediately afterwards, so the code forces an additional update. I can't
see why the first call to paintGL doesn't work.