diff --git a/plugins/samplesource/airspy/airspygui.cpp b/plugins/samplesource/airspy/airspygui.cpp index 20e060db4..8f4a931ea 100644 --- a/plugins/samplesource/airspy/airspygui.cpp +++ b/plugins/samplesource/airspy/airspygui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -57,6 +58,9 @@ AirspyGui::AirspyGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); m_rates = ((AirspyInput*) m_sampleSource)->getSampleRates(); @@ -496,3 +500,29 @@ void AirspyGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void AirspyGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/airspy/airspygui.h b/plugins/samplesource/airspy/airspygui.h index e138ff282..290c9b038 100644 --- a/plugins/samplesource/airspy/airspygui.h +++ b/plugins/samplesource/airspy/airspygui.h @@ -97,6 +97,7 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_AIRSPYGUI_H diff --git a/plugins/samplesource/airspy/airspygui.ui b/plugins/samplesource/airspy/airspygui.ui index b767aee82..5a99a1476 100644 --- a/plugins/samplesource/airspy/airspygui.ui +++ b/plugins/samplesource/airspy/airspygui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/airspyhf/airspyhfgui.cpp b/plugins/samplesource/airspyhf/airspyhfgui.cpp index 638f52661..c59451131 100644 --- a/plugins/samplesource/airspyhf/airspyhfgui.cpp +++ b/plugins/samplesource/airspyhf/airspyhfgui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -56,6 +57,9 @@ AirspyHFGui::AirspyHFGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); m_rates = ((AirspyHFInput*) m_sampleSource)->getSampleRates(); @@ -515,3 +519,29 @@ void AirspyHFGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void AirspyHFGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/airspyhf/airspyhfgui.h b/plugins/samplesource/airspyhf/airspyhfgui.h index 812b425af..1c43155e9 100644 --- a/plugins/samplesource/airspyhf/airspyhfgui.h +++ b/plugins/samplesource/airspyhf/airspyhfgui.h @@ -98,6 +98,7 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_AIRSPYHFGUI_H diff --git a/plugins/samplesource/airspyhf/airspyhfgui.ui b/plugins/samplesource/airspyhf/airspyhfgui.ui index 368ca00ae..9dfe36a89 100644 --- a/plugins/samplesource/airspyhf/airspyhfgui.ui +++ b/plugins/samplesource/airspyhf/airspyhfgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp b/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp index 6d9650598..b0297a5f6 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp +++ b/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -67,6 +68,9 @@ Bladerf1InputGui::Bladerf1InputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -575,3 +579,29 @@ void Bladerf1InputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void Bladerf1InputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/bladerf1input/bladerf1inputgui.h b/plugins/samplesource/bladerf1input/bladerf1inputgui.h index f0b0d9a1b..0991fc480 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputgui.h +++ b/plugins/samplesource/bladerf1input/bladerf1inputgui.h @@ -95,6 +95,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_BLADERFINPUTGUI_H diff --git a/plugins/samplesource/bladerf1input/bladerf1inputgui.ui b/plugins/samplesource/bladerf1input/bladerf1inputgui.ui index 5733a250f..cf3297437 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputgui.ui +++ b/plugins/samplesource/bladerf1input/bladerf1inputgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp b/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp index 0cc89c7e8..702375262 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -88,6 +89,9 @@ BladeRF2InputGui::BladeRF2InputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -566,3 +570,29 @@ void BladeRF2InputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void BladeRF2InputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/bladerf2input/bladerf2inputgui.h b/plugins/samplesource/bladerf2input/bladerf2inputgui.h index b3a8ee299..4029c3595 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputgui.h +++ b/plugins/samplesource/bladerf2input/bladerf2inputgui.h @@ -97,7 +97,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - + void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_BLADERF2INPUT_BLADERF2INPUTGUI_H_ */ diff --git a/plugins/samplesource/bladerf2input/bladerf2inputgui.ui b/plugins/samplesource/bladerf2input/bladerf2inputgui.ui index 74f2f0dad..3769e0c2d 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputgui.ui +++ b/plugins/samplesource/bladerf2input/bladerf2inputgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/fcdpro/fcdprogui.cpp b/plugins/samplesource/fcdpro/fcdprogui.cpp index 3d0c97f84..32e02b735 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.cpp +++ b/plugins/samplesource/fcdpro/fcdprogui.cpp @@ -16,6 +16,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include "ui_fcdprogui.h" #include "gui/colormapper.h" @@ -149,6 +150,9 @@ FCDProGui::FCDProGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -598,3 +602,29 @@ void FCDProGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void FCDProGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/fcdpro/fcdprogui.h b/plugins/samplesource/fcdpro/fcdprogui.h index 25ab5b411..30fc0e388 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.h +++ b/plugins/samplesource/fcdpro/fcdprogui.h @@ -106,6 +106,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_FCDPROGUI_H diff --git a/plugins/samplesource/fcdpro/fcdprogui.ui b/plugins/samplesource/fcdpro/fcdprogui.ui index 4bcb179ae..e90985668 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.ui +++ b/plugins/samplesource/fcdpro/fcdprogui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.cpp b/plugins/samplesource/fcdproplus/fcdproplusgui.cpp index 34a2c297e..d7fc6a5cd 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "ui_fcdproplusgui.h" #include "gui/colormapper.h" @@ -67,6 +68,9 @@ FCDProPlusGui::FCDProPlusGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -420,3 +424,29 @@ void FCDProPlusGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void FCDProPlusGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.h b/plugins/samplesource/fcdproplus/fcdproplusgui.h index 8901976d0..205e319eb 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.h +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.h @@ -93,6 +93,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_FCDGUI_H diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.ui b/plugins/samplesource/fcdproplus/fcdproplusgui.ui index 18cce4c35..03ebfe821 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.ui +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp index e02fc77b6..eb8272593 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp @@ -19,6 +19,7 @@ #include #include +#include #include @@ -61,6 +62,9 @@ HackRFInputGui::HackRFInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); displayBandwidths(); @@ -535,3 +539,29 @@ void HackRFInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void HackRFInputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.h b/plugins/samplesource/hackrfinput/hackrfinputgui.h index d067c65ba..e929ee863 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.h +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.h @@ -107,6 +107,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_HACKRFINPUTGUI_H diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.ui b/plugins/samplesource/hackrfinput/hackrfinputgui.ui index e5929b93c..4f51b2144 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.ui +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.ui @@ -80,7 +80,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.cpp b/plugins/samplesource/kiwisdr/kiwisdrgui.cpp index b7ea5a061..2ec0f91e0 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include "ui_kiwisdrgui.h" #include "plugin/pluginapi.h" @@ -78,6 +79,9 @@ KiwiSDRGui::KiwiSDRGui(DeviceUISet *deviceUISet, QWidget* parent) : connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); m_sampleSource->setMessageQueueToGUI(&m_inputMessageQueue); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); } @@ -362,4 +366,30 @@ void KiwiSDRGui::openDeviceSettingsDialog(const QPoint& p) m_settings.m_reverseAPIDeviceIndex = dialog.getReverseAPIDeviceIndex(); sendSettings(); -} \ No newline at end of file +} + +void KiwiSDRGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.h b/plugins/samplesource/kiwisdr/kiwisdrgui.h index a9ef5fd4d..a94b5952b 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.h +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.h @@ -87,6 +87,7 @@ private slots: void on_serverAddressApplyButton_clicked(); void on_dcBlock_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); void updateStatus(); void updateHardware(); }; diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.ui b/plugins/samplesource/kiwisdr/kiwisdrgui.ui index 1d4b37066..fbada70c2 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.ui +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.ui @@ -77,7 +77,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.cpp b/plugins/samplesource/limesdrinput/limesdrinputgui.cpp index e788e4a19..c3fcf7699 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.cpp @@ -19,6 +19,7 @@ #include #include +#include #include @@ -93,6 +94,9 @@ LimeSDRInputGUI::LimeSDRInputGUI(DeviceUISet *deviceUISet, QWidget* parent) : connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); m_limeSDRInput->setMessageQueueToGUI(&m_inputMessageQueue); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); } @@ -761,3 +765,29 @@ void LimeSDRInputGUI::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void LimeSDRInputGUI::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.h b/plugins/samplesource/limesdrinput/limesdrinputgui.h index 650d8d31e..203b0506d 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.h +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.h @@ -105,6 +105,7 @@ private slots: void on_transverter_clicked(); void on_sampleRateMode_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); void updateHardware(); void updateStatus(); diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.ui b/plugins/samplesource/limesdrinput/limesdrinputgui.ui index 43fc94c2c..ffa83daaa 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.ui +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/localinput/localinputgui.cpp b/plugins/samplesource/localinput/localinputgui.cpp index 39c5dad29..28468067c 100644 --- a/plugins/samplesource/localinput/localinputgui.cpp +++ b/plugins/samplesource/localinput/localinputgui.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -86,6 +87,9 @@ LocalInputGui::LocalInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); @@ -386,3 +390,29 @@ void LocalInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void LocalInputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/localinput/localinputgui.h b/plugins/samplesource/localinput/localinputgui.h index f8a40f342..88ef503cf 100644 --- a/plugins/samplesource/localinput/localinputgui.h +++ b/plugins/samplesource/localinput/localinputgui.h @@ -122,6 +122,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_LOCALINPUTGUI_H diff --git a/plugins/samplesource/localinput/localinputgui.ui b/plugins/samplesource/localinput/localinputgui.ui index c379c4c77..31893d636 100644 --- a/plugins/samplesource/localinput/localinputgui.ui +++ b/plugins/samplesource/localinput/localinputgui.ui @@ -68,7 +68,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/perseus/perseusgui.cpp b/plugins/samplesource/perseus/perseusgui.cpp index bd4d04b2c..8307d78cd 100644 --- a/plugins/samplesource/perseus/perseusgui.cpp +++ b/plugins/samplesource/perseus/perseusgui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "device/deviceapi.h" #include "device/deviceuiset.h" @@ -54,6 +55,9 @@ PerseusGui::PerseusGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); m_rates = m_sampleSource->getSampleRates(); @@ -439,3 +443,29 @@ void PerseusGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void PerseusGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/perseus/perseusgui.h b/plugins/samplesource/perseus/perseusgui.h index 30f7676e2..33cd9b89d 100644 --- a/plugins/samplesource/perseus/perseusgui.h +++ b/plugins/samplesource/perseus/perseusgui.h @@ -93,6 +93,7 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_PERSEUS_PERSEUSGUI_H_ */ diff --git a/plugins/samplesource/perseus/perseusgui.ui b/plugins/samplesource/perseus/perseusgui.ui index b6d1fbd00..21e5bd323 100644 --- a/plugins/samplesource/perseus/perseusgui.ui +++ b/plugins/samplesource/perseus/perseusgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp index bd8a42094..0287ac68f 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include "dsp/dspengine.h" #include "dsp/dspcommands.h" @@ -69,6 +70,9 @@ PlutoSDRInputGui::PlutoSDRInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + blockApplySettings(true); displaySettings(); blockApplySettings(false); @@ -613,3 +617,29 @@ void PlutoSDRInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void PlutoSDRInputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.h b/plugins/samplesource/plutosdrinput/plutosdrinputgui.h index 2c06a90ea..b61eaa4a7 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.h @@ -106,6 +106,7 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_PLUTOSDRINPUT_PLUTOSDRINPUTGUI_H_ */ diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui index b3ea3d085..5e091bb69 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/remoteinput/remoteinputgui.cpp b/plugins/samplesource/remoteinput/remoteinputgui.cpp index 7b78b1ca9..6c26c1d59 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.cpp +++ b/plugins/samplesource/remoteinput/remoteinputgui.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -86,6 +87,9 @@ RemoteInputGui::RemoteInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); @@ -681,3 +685,29 @@ void RemoteInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void RemoteInputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/remoteinput/remoteinputgui.h b/plugins/samplesource/remoteinput/remoteinputgui.h index 1f329696b..ebe8a2dc4 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.h +++ b/plugins/samplesource/remoteinput/remoteinputgui.h @@ -135,6 +135,7 @@ private slots: void updateStatus(); void networkManagerFinished(QNetworkReply *reply); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_REMOTEINPUTGUI_H diff --git a/plugins/samplesource/remoteinput/remoteinputgui.ui b/plugins/samplesource/remoteinput/remoteinputgui.ui index f9f2ac540..9ea60b208 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.ui +++ b/plugins/samplesource/remoteinput/remoteinputgui.ui @@ -68,7 +68,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/sdrplay/sdrplaygui.cpp b/plugins/samplesource/sdrplay/sdrplaygui.cpp index f0e63d303..53fbaf3a8 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.cpp +++ b/plugins/samplesource/sdrplay/sdrplaygui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "sdrplaygui.h" @@ -76,6 +77,9 @@ SDRPlayGui::SDRPlayGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -513,3 +517,29 @@ void SDRPlayGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void SDRPlayGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/sdrplay/sdrplaygui.h b/plugins/samplesource/sdrplay/sdrplaygui.h index 101a8ad33..db334414e 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.h +++ b/plugins/samplesource/sdrplay/sdrplaygui.h @@ -96,6 +96,7 @@ private slots: void on_startStop_toggled(bool checked); void on_record_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_SDRPLAY_SDRPLAYGUI_H_ */ diff --git a/plugins/samplesource/sdrplay/sdrplaygui.ui b/plugins/samplesource/sdrplay/sdrplaygui.ui index 22ce537d1..77b267deb 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.ui +++ b/plugins/samplesource/sdrplay/sdrplaygui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp b/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp index d116d58df..721ccb572 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "dsp/dspengine.h" #include "dsp/dspcommands.h" @@ -94,6 +95,9 @@ SoapySDRInputGui::SoapySDRInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -967,3 +971,29 @@ void SoapySDRInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void SoapySDRInputGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputgui.h b/plugins/samplesource/soapysdrinput/soapysdrinputgui.h index d9c4521de..b3e7badd3 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputgui.h +++ b/plugins/samplesource/soapysdrinput/soapysdrinputgui.h @@ -141,6 +141,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui b/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui index 318cc6002..994f16bb5 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui +++ b/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui @@ -68,7 +68,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/testsource/testsourcegui.cpp b/plugins/samplesource/testsource/testsourcegui.cpp index 55d2dac87..13c2e6aa5 100644 --- a/plugins/samplesource/testsource/testsourcegui.cpp +++ b/plugins/samplesource/testsource/testsourcegui.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "ui_testsourcegui.h" #include "plugin/pluginapi.h" @@ -72,6 +73,9 @@ TestSourceGui::TestSourceGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); } TestSourceGui::~TestSourceGui() @@ -552,4 +556,30 @@ void TestSourceGui::openDeviceSettingsDialog(const QPoint& p) m_settings.m_reverseAPIDeviceIndex = dialog.getReverseAPIDeviceIndex(); sendSettings(); -} \ No newline at end of file +} + +void TestSourceGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/testsource/testsourcegui.h b/plugins/samplesource/testsource/testsourcegui.h index 1fee09b88..50294332b 100644 --- a/plugins/samplesource/testsource/testsourcegui.h +++ b/plugins/samplesource/testsource/testsourcegui.h @@ -99,6 +99,7 @@ private slots: void on_phaseImbalance_valueChanged(int value); void on_record_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); void updateStatus(); void updateHardware(); }; diff --git a/plugins/samplesource/testsource/testsourcegui.ui b/plugins/samplesource/testsource/testsourcegui.ui index 0706fc67e..022772fbd 100644 --- a/plugins/samplesource/testsource/testsourcegui.ui +++ b/plugins/samplesource/testsource/testsourcegui.ui @@ -77,7 +77,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.cpp b/plugins/samplesource/xtrxinput/xtrxinputgui.cpp index c9f83c55e..4b7135416 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.cpp @@ -20,6 +20,7 @@ #include #include +#include #include @@ -75,6 +76,9 @@ XTRXInputGUI::XTRXInputGUI(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); + displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -691,3 +695,29 @@ void XTRXInputGUI::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } + +void XTRXInputGUI::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.h b/plugins/samplesource/xtrxinput/xtrxinputgui.h index 427176d5e..46f2b9aaa 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.h +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.h @@ -106,6 +106,7 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_XTRXINPUT_XTRXINPUTGUI_H_ */ diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.ui b/plugins/samplesource/xtrxinput/xtrxinputgui.ui index 05d808727..2a97dbc35 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.ui +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.ui @@ -74,7 +74,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file