diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp b/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp index 7cecced..9abb592 100644 --- a/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp @@ -5,6 +5,7 @@ #include "unit.h" #include "Util/util.h" #include "LibreCAL/librecaldialog.h" +#include "preferences.h" #include "Eigen/Dense" @@ -1489,7 +1490,7 @@ bool Calibration::toFile(QString filename) { if(filename.isEmpty()) { QString fn = descriptiveCalName(); - filename = QFileDialog::getSaveFileName(nullptr, "Save calibration data", fn, "Calibration files (*.cal)", nullptr, QFileDialog::DontUseNativeDialog); + filename = QFileDialog::getSaveFileName(nullptr, "Save calibration data", fn, "Calibration files (*.cal)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return false; @@ -1513,7 +1514,7 @@ bool Calibration::toFile(QString filename) bool Calibration::fromFile(QString filename) { if(filename.isEmpty()) { - filename = QFileDialog::getOpenFileName(nullptr, "Load calibration data", "", "Calibration files (*.cal)", nullptr, QFileDialog::DontUseNativeDialog); + filename = QFileDialog::getOpenFileName(nullptr, "Load calibration data", "", "Calibration files (*.cal)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return false; diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/calkitdialog.cpp b/Software/PC_Application/LibreVNA-GUI/Calibration/calkitdialog.cpp index ed24a6e..e556305 100644 --- a/Software/PC_Application/LibreVNA-GUI/Calibration/calkitdialog.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Calibration/calkitdialog.cpp @@ -2,6 +2,7 @@ #include "ui_calkitdialog.h" #include "CustomWidgets/informationbox.h" +#include "preferences.h" #include #include @@ -88,7 +89,7 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) : accept(); }); connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){ - auto filename = QFileDialog::getOpenFileName(this, "Open calibration kit coefficients", "", "Calibration kit files (*.calkit)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(this, "Open calibration kit coefficients", "", "Calibration kit files (*.calkit)", nullptr, Preferences::QFileDialogOptions()); if(filename.length() > 0) { try { kit = Calkit::fromFile(filename); @@ -102,7 +103,7 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) : }); connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){ - auto filename = QFileDialog::getSaveFileName(this, "Save calibration kit coefficients", "", "Calibration kit files (*.calkit)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(this, "Save calibration kit coefficients", "", "Calibration kit files (*.calkit)", nullptr, Preferences::QFileDialogOptions()); if(filename.length() > 0) { parseEntries(); kit.toFile(filename); diff --git a/Software/PC_Application/LibreVNA-GUI/CustomWidgets/csvimport.cpp b/Software/PC_Application/LibreVNA-GUI/CustomWidgets/csvimport.cpp index 3ccc000..39a5e56 100644 --- a/Software/PC_Application/LibreVNA-GUI/CustomWidgets/csvimport.cpp +++ b/Software/PC_Application/LibreVNA-GUI/CustomWidgets/csvimport.cpp @@ -1,6 +1,7 @@ #include "csvimport.h" #include "ui_csvimport.h" #include "Traces/trace.h" +#include "preferences.h" #include #include @@ -63,7 +64,7 @@ void CSVImport::selectTrace(unsigned int index) void CSVImport::on_browse_clicked() { - auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "CSV files (*.csv)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "CSV files (*.csv)", nullptr, Preferences::QFileDialogOptions()); if (filename.length() > 0) { ui->file->setText(filename); evaluateFile(); diff --git a/Software/PC_Application/LibreVNA-GUI/CustomWidgets/touchstoneimport.cpp b/Software/PC_Application/LibreVNA-GUI/CustomWidgets/touchstoneimport.cpp index d68c041..f06d702 100644 --- a/Software/PC_Application/LibreVNA-GUI/CustomWidgets/touchstoneimport.cpp +++ b/Software/PC_Application/LibreVNA-GUI/CustomWidgets/touchstoneimport.cpp @@ -1,6 +1,7 @@ #include "touchstoneimport.h" #include "ui_touchstoneimport.h" +#include "preferences.h" #include #include @@ -111,7 +112,7 @@ void TouchstoneImport::setFile(QString filename) void TouchstoneImport::on_browse_clicked() { - auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "Touchstone files (*.s1p *.s2p *.s3p *.s4p)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "Touchstone files (*.s1p *.s2p *.s3p *.s4p)", nullptr, Preferences::QFileDialogOptions()); if (filename.length() > 0) { ui->file->setText(filename); } diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/amplitudecaldialog.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/amplitudecaldialog.cpp index 4b598f7..ae435e5 100644 --- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/amplitudecaldialog.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/amplitudecaldialog.cpp @@ -44,7 +44,7 @@ AmplitudeCalDialog::AmplitudeCalDialog(LibreVNADriver *dev, QWidget *parent) : connect(ui->saveFile, &QPushButton::clicked, [=](){ auto fileEnding = pointType() == Protocol::PacketType::SourceCalPoint ? ".srccal" : ".recvcal"; auto fileFilter = QString("Amplitude calibration files (*")+fileEnding+")"; - auto filename = QFileDialog::getSaveFileName(nullptr, "Save calibration data", "", fileFilter, nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save calibration data", "", fileFilter, nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; @@ -70,7 +70,7 @@ AmplitudeCalDialog::AmplitudeCalDialog(LibreVNADriver *dev, QWidget *parent) : connect(ui->loadFile, &QPushButton::clicked, [=](){ auto fileEnding = pointType() == Protocol::PacketType::SourceCalPoint ? ".srccal" : ".recvcal"; auto fileFilter = QString("Amplitude calibration files (*")+fileEnding+")"; - auto filename = QFileDialog::getOpenFileName(nullptr, "Save calibration data", "", fileFilter, nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Save calibration data", "", fileFilter, nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp index 5bbed09..8ff3798 100644 --- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/devicepacketlogview.cpp @@ -3,6 +3,7 @@ #include "CustomWidgets/informationbox.h" #include "unit.h" +#include "preferences.h" #include #include @@ -28,7 +29,7 @@ DevicePacketLogView::DevicePacketLogView(QWidget *parent) : updateTree(); }); connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){ - QString filename = QFileDialog::getSaveFileName(nullptr, "Load LibreVNA log data", "", "LibreVNA log files (*.vnalog)", nullptr, QFileDialog::DontUseNativeDialog); + QString filename = QFileDialog::getSaveFileName(nullptr, "Load LibreVNA log data", "", "LibreVNA log files (*.vnalog)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; @@ -42,7 +43,7 @@ DevicePacketLogView::DevicePacketLogView(QWidget *parent) : file.close(); }); connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){ - QString filename = QFileDialog::getOpenFileName(nullptr, "Load LibreVNA log data", "", "LibreVNA log files (*.vnalog)", nullptr, QFileDialog::DontUseNativeDialog); + QString filename = QFileDialog::getOpenFileName(nullptr, "Load LibreVNA log data", "", "LibreVNA log files (*.vnalog)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/firmwareupdatedialog.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/firmwareupdatedialog.cpp index 49c861b..85c6c46 100644 --- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/firmwareupdatedialog.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/firmwareupdatedialog.cpp @@ -3,6 +3,7 @@ #include "ui_firmwareupdatedialog.h" #include "../../VNA_embedded/Application/Communication/PacketConstants.h" #include "CustomWidgets/informationbox.h" +#include "preferences.h" #include #include @@ -51,7 +52,7 @@ bool FirmwareUpdateDialog::FirmwareUpdate(LibreVNADriver *dev, QString file) void FirmwareUpdateDialog::on_bFile_clicked() { ui->bStart->setEnabled(false); - auto filename = QFileDialog::getOpenFileName(nullptr, "Open firmware file", "", "Firmware file (*.vnafw)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Open firmware file", "", "Firmware file (*.vnafw)", nullptr, Preferences::QFileDialogOptions()); if (filename.length() > 0) { ui->lFile->setText(filename); reloadFile(); diff --git a/Software/PC_Application/LibreVNA-GUI/Device/devicelog.cpp b/Software/PC_Application/LibreVNA-GUI/Device/devicelog.cpp index 41acbac..20d344c 100644 --- a/Software/PC_Application/LibreVNA-GUI/Device/devicelog.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Device/devicelog.cpp @@ -1,6 +1,7 @@ #include "devicelog.h" #include "ui_devicelog.h" +#include "preferences.h" #include #include @@ -65,7 +66,7 @@ void DeviceLog::clear() void DeviceLog::on_bToFile_clicked() { - auto filename = QFileDialog::getSaveFileName(this, "Select file for device log", "", "", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(this, "Select file for device log", "", "", nullptr, Preferences::QFileDialogOptions()); if(filename.length() > 0) { // create file ofstream file; diff --git a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/tracewidgetsa.cpp b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/tracewidgetsa.cpp index ada3123..545ee85 100644 --- a/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/tracewidgetsa.cpp +++ b/Software/PC_Application/LibreVNA-GUI/SpectrumAnalyzer/tracewidgetsa.cpp @@ -23,7 +23,7 @@ void TraceWidgetSA::exportDialog() void TraceWidgetSA::importDialog() { - auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "CSV files (*.csv)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "CSV files (*.csv)", nullptr, Preferences::QFileDialogOptions()); if (!filename.isEmpty()) { try { std::vector traces; diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/eyediagramplot.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/eyediagramplot.cpp index b19e2fb..193395d 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/eyediagramplot.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/eyediagramplot.cpp @@ -396,7 +396,7 @@ void EyeDiagramPlot::updateContextMenu() auto image = new QAction("Save image...", contextmenu); contextmenu->addAction(image); connect(image, &QAction::triggered, [=]() { - auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/tracecsvexport.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/tracecsvexport.cpp index 5f92a90..dc59c48 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/tracecsvexport.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/tracecsvexport.cpp @@ -2,7 +2,7 @@ #include "ui_tracecsvexport.h" #include "csv.h" - +#include "preferences.h" #include "traceaxis.h" #include @@ -72,7 +72,7 @@ void TraceCSVExport::on_buttonBox_accepted() return; } - auto filename = QFileDialog::getSaveFileName(nullptr, "Save calibration data", "", "CSV files (*.csv)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save calibration data", "", "CSV files (*.csv)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/tracepolar.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/tracepolar.cpp index d31f703..313d69d 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/tracepolar.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/tracepolar.cpp @@ -2,6 +2,7 @@ #include "Marker/marker.h" #include "Util/util.h" +#include "preferences.h" #include @@ -251,7 +252,7 @@ void TracePolar::updateContextMenu() auto image = new QAction("Save image...", contextmenu); contextmenu->addAction(image); connect(image, &QAction::triggered, [=]() { - auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/tracetouchstoneexport.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/tracetouchstoneexport.cpp index 7a3d594..ccea02b 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/tracetouchstoneexport.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/tracetouchstoneexport.cpp @@ -2,6 +2,7 @@ #include "ui_tracetouchstoneexport.h" #include "touchstone.h" +#include "preferences.h" #include #include @@ -41,7 +42,7 @@ bool TraceTouchstoneExport::setPortNum(int ports) void TraceTouchstoneExport::on_buttonBox_accepted() { - auto filename = QFileDialog::getSaveFileName(this, "Select file for exporting traces", "", "Touchstone files (*.s1p *.s2p *.s3p *.s4p)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(this, "Select file for exporting traces", "", "Touchstone files (*.s1p *.s2p *.s3p *.s4p)", nullptr, Preferences::QFileDialogOptions()); if(filename.length() > 0) { auto ports = ui->sbPorts->value(); auto t = Touchstone(ports); diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/tracewaterfall.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/tracewaterfall.cpp index d10ef46..1d46c31 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/tracewaterfall.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/tracewaterfall.cpp @@ -212,7 +212,7 @@ void TraceWaterfall::updateContextMenu() auto image = new QAction("Save image...", contextmenu); contextmenu->addAction(image); connect(image, &QAction::triggered, [=]() { - auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/tracexyplot.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/tracexyplot.cpp index 468d148..225fa2b 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/tracexyplot.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/tracexyplot.cpp @@ -349,7 +349,7 @@ void TraceXYPlot::updateContextMenu() auto image = new QAction("Save image...", contextmenu); contextmenu->addAction(image); connect(image, &QAction::triggered, [=]() { - auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/xyplotaxisdialog.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/xyplotaxisdialog.cpp index 6bdf02b..b61e333 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/xyplotaxisdialog.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/xyplotaxisdialog.cpp @@ -2,6 +2,7 @@ #include "ui_xyplotaxisdialog.h" #include "traceaxis.h" +#include "preferences.h" #include #include @@ -239,7 +240,7 @@ XYplotAxisDialog::XYplotAxisDialog(TraceXYPlot *plot) : removeLine(index); }); connect(ui->exportLines, &QPushButton::clicked, this, [=](){ - QString filename = QFileDialog::getSaveFileName(nullptr, "Save limit lines", "", "Limit files (*.limits)", nullptr, QFileDialog::DontUseNativeDialog); + QString filename = QFileDialog::getSaveFileName(nullptr, "Save limit lines", "", "Limit files (*.limits)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; @@ -262,7 +263,7 @@ XYplotAxisDialog::XYplotAxisDialog(TraceXYPlot *plot) : }); connect(ui->importLines, &QPushButton::clicked, [=](){ - QString filename = QFileDialog::getOpenFileName(nullptr, "Load limit lines", "", "Limit files (*.limits)", nullptr, QFileDialog::DontUseNativeDialog); + QString filename = QFileDialog::getOpenFileName(nullptr, "Load limit lines", "", "Limit files (*.limits)", nullptr, Preferences::QFileDialogOptions()); ifstream file; file.open(filename.toStdString()); if(!file.is_open()) { diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/Deembedding/matchingnetwork.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/Deembedding/matchingnetwork.cpp index 3e59e2a..1e070f6 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/Deembedding/matchingnetwork.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/Deembedding/matchingnetwork.cpp @@ -764,7 +764,7 @@ void MatchingComponent::mouseDoubleClickEvent(QMouseEvent *e) Q_UNUSED(e); if(type == Type::DefinedThrough || type == Type::DefinedShunt) { // select new touchstone file - auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "Touchstone files (*.s2p)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "Touchstone files (*.s2p)", nullptr, Preferences::QFileDialogOptions()); if (!filename.isEmpty()) { try { *touchstone = Touchstone::fromFile(filename.toStdString()); diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/tracewidgetvna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/tracewidgetvna.cpp index 8190a69..a7766d2 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/tracewidgetvna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/tracewidgetvna.cpp @@ -56,7 +56,7 @@ void TraceWidgetVNA::exportTouchstone() void TraceWidgetVNA::importDialog() { - auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "Touchstone files (*.s1p *.s2p *.s3p *.s4p);;CSV files (*.csv)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Open measurement file", "", "Touchstone files (*.s1p *.s2p *.s3p *.s4p);;CSV files (*.csv)", nullptr, Preferences::QFileDialogOptions()); if (!filename.isEmpty()) { try { std::vector traces; diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp index f294bd3..cf39e2b 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp @@ -228,7 +228,7 @@ VNA::VNA(AppWindow *window, QString name) if(window->getDevice()) { auto key = "DefaultCalibration"+window->getDevice()->getSerial(); QSettings settings; - auto filename = QFileDialog::getOpenFileName(nullptr, "Load calibration data", settings.value(key).toString(), "Calibration files (*.cal)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Load calibration data", settings.value(key).toString(), "Calibration files (*.cal)", nullptr, Preferences::QFileDialogOptions()); if(!filename.isEmpty()) { settings.setValue(key, filename); removeDefaultCal->setEnabled(true); diff --git a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp index 61820ad..c1aa998 100644 --- a/Software/PC_Application/LibreVNA-GUI/appwindow.cpp +++ b/Software/PC_Application/LibreVNA-GUI/appwindow.cpp @@ -229,7 +229,7 @@ void AppWindow::SetupMenu() connect(ui->actionDisconnect, &QAction::triggered, this, &AppWindow::DisconnectDevice); connect(ui->actionQuit, &QAction::triggered, this, &AppWindow::close); connect(ui->actionSave_setup, &QAction::triggered, [=](){ - auto filename = QFileDialog::getSaveFileName(nullptr, "Save setup data", "", "Setup files (*.setup)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save setup data", "", "Setup files (*.setup)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; @@ -237,7 +237,7 @@ void AppWindow::SetupMenu() SaveSetup(filename); }); connect(ui->actionLoad_setup, &QAction::triggered, [=](){ - auto filename = QFileDialog::getOpenFileName(nullptr, "Load setup data", "", "Setup files (*.setup)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, "Load setup data", "", "Setup files (*.setup)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/mode.cpp b/Software/PC_Application/LibreVNA-GUI/mode.cpp index 2159685..f008092 100644 --- a/Software/PC_Application/LibreVNA-GUI/mode.cpp +++ b/Software/PC_Application/LibreVNA-GUI/mode.cpp @@ -141,7 +141,7 @@ Mode::Type Mode::TypeFromName(QString s) void Mode::saveSreenshot() { - auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return; diff --git a/Software/PC_Application/LibreVNA-GUI/preferences.cpp b/Software/PC_Application/LibreVNA-GUI/preferences.cpp index 6006a78..5807dad 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferences.cpp +++ b/Software/PC_Application/LibreVNA-GUI/preferences.cpp @@ -68,7 +68,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) : ui->StartupStack->setCurrentWidget(ui->StartupPageSetupFile); }); connect(ui->StartupBrowse, &QPushButton::clicked, [=](){ - ui->StartupSetupFile->setText(QFileDialog::getOpenFileName(nullptr, "Select startup setup file", "", "Setup files (*.setup)", nullptr, QFileDialog::DontUseNativeDialog)); + ui->StartupSetupFile->setText(QFileDialog::getOpenFileName(nullptr, "Select startup setup file", "", "Setup files (*.setup)", nullptr, Preferences::QFileDialogOptions())); }); ui->StartupSweepStart->setUnit("Hz"); ui->StartupSweepStart->setPrefixes(" kMG"); @@ -186,7 +186,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) : updateFromGUI(); }); connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){ - auto filename = QFileDialog::getSaveFileName(this, "Save preferences", "", "LibreVNA preferences files (*.vnapref)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(this, "Save preferences", "", "LibreVNA preferences files (*.vnapref)", nullptr, Preferences::QFileDialogOptions()); if(filename.length() > 0) { if(!filename.toLower().endsWith(".vnapref")) { filename.append(".vnapref"); @@ -199,7 +199,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) : } }); connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){ - auto filename = QFileDialog::getOpenFileName(this, "Load preferences", "", "LibreVNA preferences files (*.vnapref)", nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(this, "Load preferences", "", "LibreVNA preferences files (*.vnapref)", nullptr, Preferences::QFileDialogOptions()); if(filename.length() > 0) { ifstream file; file.open(filename.toStdString()); @@ -334,6 +334,7 @@ void PreferencesDialog::setInitialGUIState() ui->DebugMaxUSBlogSize->setValue(p->Debug.USBlogSizeLimit); ui->DebugSaveTraceData->setChecked(p->Debug.saveTraceData); + ui->DebugUseNativeDialogs->setChecked(p->Debug.useNativeDialogs); QTreeWidgetItem *item = ui->treeWidget->topLevelItem(0); if (item != nullptr) { @@ -446,6 +447,7 @@ void PreferencesDialog::updateFromGUI() p->Debug.USBlogSizeLimit = ui->DebugMaxUSBlogSize->value(); p->Debug.saveTraceData = ui->DebugSaveTraceData->isChecked(); + p->Debug.useNativeDialogs = ui->DebugUseNativeDialogs->isChecked(); p->nonTrivialWriting(); } @@ -522,6 +524,14 @@ void Preferences::setDefault(std::vector descr) } } +QFileDialog::Options Preferences::QFileDialogOptions(QFileDialog::Options option) +{ + if(!instance.Debug.useNativeDialogs) { + option = (QFileDialog::Option) ((int) option | QFileDialog::DontUseNativeDialog); + } + return option; +} + void Preferences::fromJSON(nlohmann::json j) { parseJSON(j, descr); diff --git a/Software/PC_Application/LibreVNA-GUI/preferences.h b/Software/PC_Application/LibreVNA-GUI/preferences.h index cd592ee..08334c8 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferences.h +++ b/Software/PC_Application/LibreVNA-GUI/preferences.h @@ -7,6 +7,7 @@ #include "Device/LibreVNA/Compound/compounddevice.h" #include +#include #include #include @@ -61,6 +62,8 @@ public: void manualTCPport() { TCPoverride = true; } + static QFileDialog::Options QFileDialogOptions(QFileDialog::Options option = (QFileDialog::Options) 0x00000000); + struct { bool ConnectToFirstDevice; bool RememberSweepSettings; @@ -190,6 +193,7 @@ public: struct { double USBlogSizeLimit; bool saveTraceData; + bool useNativeDialogs; } Debug; bool TCPoverride; // in case of manual port specification via command line @@ -310,6 +314,7 @@ private: {&StreamingServers.SANormalizedData.port, "StreamingServers.SANormalizedData.port", 19101}, {&Debug.USBlogSizeLimit, "Debug.USBlogSizeLimit", 10000000.0}, {&Debug.saveTraceData, "Debug.saveTraceData", false}, + {&Debug.useNativeDialogs, "Debug.useNativeDialogs", true}, }}; }; diff --git a/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui b/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui index 27e245c..3b5d3a2 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui +++ b/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui @@ -98,7 +98,7 @@ - 2 + 6 @@ -112,8 +112,8 @@ 0 0 - 424 - 852 + 679 + 836 @@ -703,8 +703,8 @@ 0 0 - 450 - 416 + 696 + 564 @@ -943,7 +943,7 @@ 0 - 0 + -400 679 964 @@ -2074,8 +2074,8 @@ 0 0 - 194 - 146 + 696 + 564 @@ -2116,6 +2116,22 @@ + + + + Load/save dialogs + + + + + + Use native dialogs from OS + + + + + + diff --git a/Software/PC_Application/LibreVNA-GUI/savable.cpp b/Software/PC_Application/LibreVNA-GUI/savable.cpp index 6d06a55..fc475c8 100644 --- a/Software/PC_Application/LibreVNA-GUI/savable.cpp +++ b/Software/PC_Application/LibreVNA-GUI/savable.cpp @@ -1,5 +1,6 @@ #include "savable.h" #include "CustomWidgets/informationbox.h" +#include "preferences.h" #include #include @@ -9,7 +10,7 @@ using namespace std; bool Savable::openFromFileDialog(QString title, QString filetype) { - auto filename = QFileDialog::getOpenFileName(nullptr, title, "", filetype, nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getOpenFileName(nullptr, title, "", filetype, nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return false; @@ -36,7 +37,7 @@ bool Savable::openFromFileDialog(QString title, QString filetype) bool Savable::saveToFileDialog(QString title, QString filetype, QString ending) { - auto filename = QFileDialog::getSaveFileName(nullptr, title, "", filetype, nullptr, QFileDialog::DontUseNativeDialog); + auto filename = QFileDialog::getSaveFileName(nullptr, title, "", filetype, nullptr, Preferences::QFileDialogOptions()); if(filename.isEmpty()) { // aborted selection return false;