mirror of
https://github.com/jankae/LibreVNA.git
synced 2025-12-06 07:12:10 +01:00
use native OS dialogs by default for load/save
This commit is contained in:
parent
fc717a8f88
commit
64a7ddc455
|
|
@ -5,6 +5,7 @@
|
||||||
#include "unit.h"
|
#include "unit.h"
|
||||||
#include "Util/util.h"
|
#include "Util/util.h"
|
||||||
#include "LibreCAL/librecaldialog.h"
|
#include "LibreCAL/librecaldialog.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include "Eigen/Dense"
|
#include "Eigen/Dense"
|
||||||
|
|
||||||
|
|
@ -1489,7 +1490,7 @@ bool Calibration::toFile(QString filename)
|
||||||
{
|
{
|
||||||
if(filename.isEmpty()) {
|
if(filename.isEmpty()) {
|
||||||
QString fn = descriptiveCalName();
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -1513,7 +1514,7 @@ bool Calibration::toFile(QString filename)
|
||||||
bool Calibration::fromFile(QString filename)
|
bool Calibration::fromFile(QString filename)
|
||||||
{
|
{
|
||||||
if(filename.isEmpty()) {
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "ui_calkitdialog.h"
|
#include "ui_calkitdialog.h"
|
||||||
#include "CustomWidgets/informationbox.h"
|
#include "CustomWidgets/informationbox.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
@ -88,7 +89,7 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) :
|
||||||
accept();
|
accept();
|
||||||
});
|
});
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){
|
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) {
|
if(filename.length() > 0) {
|
||||||
try {
|
try {
|
||||||
kit = Calkit::fromFile(filename);
|
kit = Calkit::fromFile(filename);
|
||||||
|
|
@ -102,7 +103,7 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) :
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){
|
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) {
|
if(filename.length() > 0) {
|
||||||
parseEntries();
|
parseEntries();
|
||||||
kit.toFile(filename);
|
kit.toFile(filename);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include "csvimport.h"
|
#include "csvimport.h"
|
||||||
#include "ui_csvimport.h"
|
#include "ui_csvimport.h"
|
||||||
#include "Traces/trace.h"
|
#include "Traces/trace.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
@ -63,7 +64,7 @@ void CSVImport::selectTrace(unsigned int index)
|
||||||
|
|
||||||
void CSVImport::on_browse_clicked()
|
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) {
|
if (filename.length() > 0) {
|
||||||
ui->file->setText(filename);
|
ui->file->setText(filename);
|
||||||
evaluateFile();
|
evaluateFile();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include "touchstoneimport.h"
|
#include "touchstoneimport.h"
|
||||||
|
|
||||||
#include "ui_touchstoneimport.h"
|
#include "ui_touchstoneimport.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
@ -111,7 +112,7 @@ void TouchstoneImport::setFile(QString filename)
|
||||||
|
|
||||||
void TouchstoneImport::on_browse_clicked()
|
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) {
|
if (filename.length() > 0) {
|
||||||
ui->file->setText(filename);
|
ui->file->setText(filename);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ AmplitudeCalDialog::AmplitudeCalDialog(LibreVNADriver *dev, QWidget *parent) :
|
||||||
connect(ui->saveFile, &QPushButton::clicked, [=](){
|
connect(ui->saveFile, &QPushButton::clicked, [=](){
|
||||||
auto fileEnding = pointType() == Protocol::PacketType::SourceCalPoint ? ".srccal" : ".recvcal";
|
auto fileEnding = pointType() == Protocol::PacketType::SourceCalPoint ? ".srccal" : ".recvcal";
|
||||||
auto fileFilter = QString("Amplitude calibration files (*")+fileEnding+")";
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
@ -70,7 +70,7 @@ AmplitudeCalDialog::AmplitudeCalDialog(LibreVNADriver *dev, QWidget *parent) :
|
||||||
connect(ui->loadFile, &QPushButton::clicked, [=](){
|
connect(ui->loadFile, &QPushButton::clicked, [=](){
|
||||||
auto fileEnding = pointType() == Protocol::PacketType::SourceCalPoint ? ".srccal" : ".recvcal";
|
auto fileEnding = pointType() == Protocol::PacketType::SourceCalPoint ? ".srccal" : ".recvcal";
|
||||||
auto fileFilter = QString("Amplitude calibration files (*")+fileEnding+")";
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "CustomWidgets/informationbox.h"
|
#include "CustomWidgets/informationbox.h"
|
||||||
#include "unit.h"
|
#include "unit.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
|
@ -28,7 +29,7 @@ DevicePacketLogView::DevicePacketLogView(QWidget *parent) :
|
||||||
updateTree();
|
updateTree();
|
||||||
});
|
});
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
@ -42,7 +43,7 @@ DevicePacketLogView::DevicePacketLogView(QWidget *parent) :
|
||||||
file.close();
|
file.close();
|
||||||
});
|
});
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
#include "ui_firmwareupdatedialog.h"
|
#include "ui_firmwareupdatedialog.h"
|
||||||
#include "../../VNA_embedded/Application/Communication/PacketConstants.h"
|
#include "../../VNA_embedded/Application/Communication/PacketConstants.h"
|
||||||
#include "CustomWidgets/informationbox.h"
|
#include "CustomWidgets/informationbox.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QStyle>
|
#include <QStyle>
|
||||||
|
|
@ -51,7 +52,7 @@ bool FirmwareUpdateDialog::FirmwareUpdate(LibreVNADriver *dev, QString file)
|
||||||
void FirmwareUpdateDialog::on_bFile_clicked()
|
void FirmwareUpdateDialog::on_bFile_clicked()
|
||||||
{
|
{
|
||||||
ui->bStart->setEnabled(false);
|
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) {
|
if (filename.length() > 0) {
|
||||||
ui->lFile->setText(filename);
|
ui->lFile->setText(filename);
|
||||||
reloadFile();
|
reloadFile();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include "devicelog.h"
|
#include "devicelog.h"
|
||||||
|
|
||||||
#include "ui_devicelog.h"
|
#include "ui_devicelog.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
|
@ -65,7 +66,7 @@ void DeviceLog::clear()
|
||||||
|
|
||||||
void DeviceLog::on_bToFile_clicked()
|
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) {
|
if(filename.length() > 0) {
|
||||||
// create file
|
// create file
|
||||||
ofstream file;
|
ofstream file;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ void TraceWidgetSA::exportDialog()
|
||||||
|
|
||||||
void TraceWidgetSA::importDialog()
|
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()) {
|
if (!filename.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
std::vector<Trace*> traces;
|
std::vector<Trace*> traces;
|
||||||
|
|
|
||||||
|
|
@ -396,7 +396,7 @@ void EyeDiagramPlot::updateContextMenu()
|
||||||
auto image = new QAction("Save image...", contextmenu);
|
auto image = new QAction("Save image...", contextmenu);
|
||||||
contextmenu->addAction(image);
|
contextmenu->addAction(image);
|
||||||
connect(image, &QAction::triggered, [=]() {
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#include "ui_tracecsvexport.h"
|
#include "ui_tracecsvexport.h"
|
||||||
#include "csv.h"
|
#include "csv.h"
|
||||||
|
#include "preferences.h"
|
||||||
#include "traceaxis.h"
|
#include "traceaxis.h"
|
||||||
|
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
|
|
@ -72,7 +72,7 @@ void TraceCSVExport::on_buttonBox_accepted()
|
||||||
return;
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "Marker/marker.h"
|
#include "Marker/marker.h"
|
||||||
#include "Util/util.h"
|
#include "Util/util.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
|
||||||
|
|
@ -251,7 +252,7 @@ void TracePolar::updateContextMenu()
|
||||||
auto image = new QAction("Save image...", contextmenu);
|
auto image = new QAction("Save image...", contextmenu);
|
||||||
contextmenu->addAction(image);
|
contextmenu->addAction(image);
|
||||||
connect(image, &QAction::triggered, [=]() {
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "ui_tracetouchstoneexport.h"
|
#include "ui_tracetouchstoneexport.h"
|
||||||
#include "touchstone.h"
|
#include "touchstone.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
|
@ -41,7 +42,7 @@ bool TraceTouchstoneExport::setPortNum(int ports)
|
||||||
|
|
||||||
void TraceTouchstoneExport::on_buttonBox_accepted()
|
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) {
|
if(filename.length() > 0) {
|
||||||
auto ports = ui->sbPorts->value();
|
auto ports = ui->sbPorts->value();
|
||||||
auto t = Touchstone(ports);
|
auto t = Touchstone(ports);
|
||||||
|
|
|
||||||
|
|
@ -212,7 +212,7 @@ void TraceWaterfall::updateContextMenu()
|
||||||
auto image = new QAction("Save image...", contextmenu);
|
auto image = new QAction("Save image...", contextmenu);
|
||||||
contextmenu->addAction(image);
|
contextmenu->addAction(image);
|
||||||
connect(image, &QAction::triggered, [=]() {
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -349,7 +349,7 @@ void TraceXYPlot::updateContextMenu()
|
||||||
auto image = new QAction("Save image...", contextmenu);
|
auto image = new QAction("Save image...", contextmenu);
|
||||||
contextmenu->addAction(image);
|
contextmenu->addAction(image);
|
||||||
connect(image, &QAction::triggered, [=]() {
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "ui_xyplotaxisdialog.h"
|
#include "ui_xyplotaxisdialog.h"
|
||||||
#include "traceaxis.h"
|
#include "traceaxis.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QStandardItemModel>
|
#include <QStandardItemModel>
|
||||||
|
|
@ -239,7 +240,7 @@ XYplotAxisDialog::XYplotAxisDialog(TraceXYPlot *plot) :
|
||||||
removeLine(index);
|
removeLine(index);
|
||||||
});
|
});
|
||||||
connect(ui->exportLines, &QPushButton::clicked, this, [=](){
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
@ -262,7 +263,7 @@ XYplotAxisDialog::XYplotAxisDialog(TraceXYPlot *plot) :
|
||||||
|
|
||||||
});
|
});
|
||||||
connect(ui->importLines, &QPushButton::clicked, [=](){
|
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;
|
ifstream file;
|
||||||
file.open(filename.toStdString());
|
file.open(filename.toStdString());
|
||||||
if(!file.is_open()) {
|
if(!file.is_open()) {
|
||||||
|
|
|
||||||
|
|
@ -764,7 +764,7 @@ void MatchingComponent::mouseDoubleClickEvent(QMouseEvent *e)
|
||||||
Q_UNUSED(e);
|
Q_UNUSED(e);
|
||||||
if(type == Type::DefinedThrough || type == Type::DefinedShunt) {
|
if(type == Type::DefinedThrough || type == Type::DefinedShunt) {
|
||||||
// select new touchstone file
|
// 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()) {
|
if (!filename.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
*touchstone = Touchstone::fromFile(filename.toStdString());
|
*touchstone = Touchstone::fromFile(filename.toStdString());
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ void TraceWidgetVNA::exportTouchstone()
|
||||||
|
|
||||||
void TraceWidgetVNA::importDialog()
|
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()) {
|
if (!filename.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
std::vector<Trace*> traces;
|
std::vector<Trace*> traces;
|
||||||
|
|
|
||||||
|
|
@ -228,7 +228,7 @@ VNA::VNA(AppWindow *window, QString name)
|
||||||
if(window->getDevice()) {
|
if(window->getDevice()) {
|
||||||
auto key = "DefaultCalibration"+window->getDevice()->getSerial();
|
auto key = "DefaultCalibration"+window->getDevice()->getSerial();
|
||||||
QSettings settings;
|
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()) {
|
if(!filename.isEmpty()) {
|
||||||
settings.setValue(key, filename);
|
settings.setValue(key, filename);
|
||||||
removeDefaultCal->setEnabled(true);
|
removeDefaultCal->setEnabled(true);
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,7 @@ void AppWindow::SetupMenu()
|
||||||
connect(ui->actionDisconnect, &QAction::triggered, this, &AppWindow::DisconnectDevice);
|
connect(ui->actionDisconnect, &QAction::triggered, this, &AppWindow::DisconnectDevice);
|
||||||
connect(ui->actionQuit, &QAction::triggered, this, &AppWindow::close);
|
connect(ui->actionQuit, &QAction::triggered, this, &AppWindow::close);
|
||||||
connect(ui->actionSave_setup, &QAction::triggered, [=](){
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
@ -237,7 +237,7 @@ void AppWindow::SetupMenu()
|
||||||
SaveSetup(filename);
|
SaveSetup(filename);
|
||||||
});
|
});
|
||||||
connect(ui->actionLoad_setup, &QAction::triggered, [=](){
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ Mode::Type Mode::TypeFromName(QString s)
|
||||||
|
|
||||||
void Mode::saveSreenshot()
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
|
||||||
ui->StartupStack->setCurrentWidget(ui->StartupPageSetupFile);
|
ui->StartupStack->setCurrentWidget(ui->StartupPageSetupFile);
|
||||||
});
|
});
|
||||||
connect(ui->StartupBrowse, &QPushButton::clicked, [=](){
|
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->setUnit("Hz");
|
||||||
ui->StartupSweepStart->setPrefixes(" kMG");
|
ui->StartupSweepStart->setPrefixes(" kMG");
|
||||||
|
|
@ -186,7 +186,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
|
||||||
updateFromGUI();
|
updateFromGUI();
|
||||||
});
|
});
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){
|
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.length() > 0) {
|
||||||
if(!filename.toLower().endsWith(".vnapref")) {
|
if(!filename.toLower().endsWith(".vnapref")) {
|
||||||
filename.append(".vnapref");
|
filename.append(".vnapref");
|
||||||
|
|
@ -199,7 +199,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){
|
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) {
|
if(filename.length() > 0) {
|
||||||
ifstream file;
|
ifstream file;
|
||||||
file.open(filename.toStdString());
|
file.open(filename.toStdString());
|
||||||
|
|
@ -334,6 +334,7 @@ void PreferencesDialog::setInitialGUIState()
|
||||||
|
|
||||||
ui->DebugMaxUSBlogSize->setValue(p->Debug.USBlogSizeLimit);
|
ui->DebugMaxUSBlogSize->setValue(p->Debug.USBlogSizeLimit);
|
||||||
ui->DebugSaveTraceData->setChecked(p->Debug.saveTraceData);
|
ui->DebugSaveTraceData->setChecked(p->Debug.saveTraceData);
|
||||||
|
ui->DebugUseNativeDialogs->setChecked(p->Debug.useNativeDialogs);
|
||||||
|
|
||||||
QTreeWidgetItem *item = ui->treeWidget->topLevelItem(0);
|
QTreeWidgetItem *item = ui->treeWidget->topLevelItem(0);
|
||||||
if (item != nullptr) {
|
if (item != nullptr) {
|
||||||
|
|
@ -446,6 +447,7 @@ void PreferencesDialog::updateFromGUI()
|
||||||
|
|
||||||
p->Debug.USBlogSizeLimit = ui->DebugMaxUSBlogSize->value();
|
p->Debug.USBlogSizeLimit = ui->DebugMaxUSBlogSize->value();
|
||||||
p->Debug.saveTraceData = ui->DebugSaveTraceData->isChecked();
|
p->Debug.saveTraceData = ui->DebugSaveTraceData->isChecked();
|
||||||
|
p->Debug.useNativeDialogs = ui->DebugUseNativeDialogs->isChecked();
|
||||||
|
|
||||||
p->nonTrivialWriting();
|
p->nonTrivialWriting();
|
||||||
}
|
}
|
||||||
|
|
@ -522,6 +524,14 @@ void Preferences::setDefault(std::vector<Savable::SettingDescription> 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)
|
void Preferences::fromJSON(nlohmann::json j)
|
||||||
{
|
{
|
||||||
parseJSON(j, descr);
|
parseJSON(j, descr);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
#include "Device/LibreVNA/Compound/compounddevice.h"
|
#include "Device/LibreVNA/Compound/compounddevice.h"
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include <QFileDialog>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
|
|
||||||
|
|
@ -61,6 +62,8 @@ public:
|
||||||
|
|
||||||
void manualTCPport() { TCPoverride = true; }
|
void manualTCPport() { TCPoverride = true; }
|
||||||
|
|
||||||
|
static QFileDialog::Options QFileDialogOptions(QFileDialog::Options option = (QFileDialog::Options) 0x00000000);
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
bool ConnectToFirstDevice;
|
bool ConnectToFirstDevice;
|
||||||
bool RememberSweepSettings;
|
bool RememberSweepSettings;
|
||||||
|
|
@ -190,6 +193,7 @@ public:
|
||||||
struct {
|
struct {
|
||||||
double USBlogSizeLimit;
|
double USBlogSizeLimit;
|
||||||
bool saveTraceData;
|
bool saveTraceData;
|
||||||
|
bool useNativeDialogs;
|
||||||
} Debug;
|
} Debug;
|
||||||
|
|
||||||
bool TCPoverride; // in case of manual port specification via command line
|
bool TCPoverride; // in case of manual port specification via command line
|
||||||
|
|
@ -310,6 +314,7 @@ private:
|
||||||
{&StreamingServers.SANormalizedData.port, "StreamingServers.SANormalizedData.port", 19101},
|
{&StreamingServers.SANormalizedData.port, "StreamingServers.SANormalizedData.port", 19101},
|
||||||
{&Debug.USBlogSizeLimit, "Debug.USBlogSizeLimit", 10000000.0},
|
{&Debug.USBlogSizeLimit, "Debug.USBlogSizeLimit", 10000000.0},
|
||||||
{&Debug.saveTraceData, "Debug.saveTraceData", false},
|
{&Debug.saveTraceData, "Debug.saveTraceData", false},
|
||||||
|
{&Debug.useNativeDialogs, "Debug.useNativeDialogs", true},
|
||||||
}};
|
}};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="Startup">
|
<widget class="QWidget" name="Startup">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
|
@ -112,8 +112,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>424</width>
|
<width>679</width>
|
||||||
<height>852</height>
|
<height>836</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_13">
|
<layout class="QVBoxLayout" name="verticalLayout_13">
|
||||||
|
|
@ -703,8 +703,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>450</width>
|
<width>696</width>
|
||||||
<height>416</height>
|
<height>564</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_21">
|
<layout class="QVBoxLayout" name="verticalLayout_21">
|
||||||
|
|
@ -943,7 +943,7 @@
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>-400</y>
|
||||||
<width>679</width>
|
<width>679</width>
|
||||||
<height>964</height>
|
<height>964</height>
|
||||||
</rect>
|
</rect>
|
||||||
|
|
@ -2074,8 +2074,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>194</width>
|
<width>696</width>
|
||||||
<height>146</height>
|
<height>564</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_19">
|
<layout class="QHBoxLayout" name="horizontalLayout_19">
|
||||||
|
|
@ -2116,6 +2116,22 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_25">
|
||||||
|
<property name="title">
|
||||||
|
<string>Load/save dialogs</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_24">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="DebugUseNativeDialogs">
|
||||||
|
<property name="text">
|
||||||
|
<string>Use native dialogs from OS</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer_9">
|
<spacer name="verticalSpacer_9">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#include "savable.h"
|
#include "savable.h"
|
||||||
#include "CustomWidgets/informationbox.h"
|
#include "CustomWidgets/informationbox.h"
|
||||||
|
#include "preferences.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
@ -9,7 +10,7 @@ using namespace std;
|
||||||
|
|
||||||
bool Savable::openFromFileDialog(QString title, QString filetype)
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -36,7 +37,7 @@ bool Savable::openFromFileDialog(QString title, QString filetype)
|
||||||
|
|
||||||
bool Savable::saveToFileDialog(QString title, QString filetype, QString ending)
|
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()) {
|
if(filename.isEmpty()) {
|
||||||
// aborted selection
|
// aborted selection
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue