diff --git a/Software/PC_Application/Calibration/calkit.cpp b/Software/PC_Application/Calibration/calkit.cpp index dad964f..05efd97 100644 --- a/Software/PC_Application/Calibration/calkit.cpp +++ b/Software/PC_Application/Calibration/calkit.cpp @@ -184,9 +184,14 @@ Calkit Calkit::fromFile(QString filename) return c; } -void Calkit::edit() +void Calkit::edit(std::function done) { auto dialog = new CalkitDialog(*this); + if(done) { + QObject::connect(dialog, &QDialog::accepted, [=](){ + done(); + }); + } dialog->show(); } diff --git a/Software/PC_Application/Calibration/calkit.h b/Software/PC_Application/Calibration/calkit.h index 736d77c..3c25a0d 100644 --- a/Software/PC_Application/Calibration/calkit.h +++ b/Software/PC_Application/Calibration/calkit.h @@ -36,7 +36,7 @@ public: void toFile(QString filename); static Calkit fromFile(QString filename); - void edit(); + void edit(std::function done = nullptr); SOLT toSOLT(double frequency); TRL toTRL(double frequency); double minFreq(bool trl = false); diff --git a/Software/PC_Application/Calibration/calkitdialog.cpp b/Software/PC_Application/Calibration/calkitdialog.cpp index 70b6a64..545e2e8 100644 --- a/Software/PC_Application/Calibration/calkitdialog.cpp +++ b/Software/PC_Application/Calibration/calkitdialog.cpp @@ -111,10 +111,10 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) : connect(ui->buttonBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, [this]() { parseEntries(); editKit = ownKit; - delete this; + accept(); }); connect(ui->buttonBox->button(QDialogButtonBox::Cancel), &QPushButton::clicked, [this]() { - delete this; + reject(); }); connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){ auto filename = QFileDialog::getOpenFileName(this, "Open calibration kit coefficients", "", "Calibration kit files (*.calkit)", nullptr, QFileDialog::DontUseNativeDialog); diff --git a/Software/PC_Application/VNA/vna.cpp b/Software/PC_Application/VNA/vna.cpp index c70a236..979665d 100644 --- a/Software/PC_Application/VNA/vna.cpp +++ b/Software/PC_Application/VNA/vna.cpp @@ -97,10 +97,10 @@ VNA::VNA(AppWindow *window) saveCal->setEnabled(false); connect(calLoad, &QAction::triggered, [=](){ - cal.openFromFile(); - if(cal.getType() == Calibration::Type::None) { - DisableCalibration(); - } else { + cal.openFromFile(); + if(cal.getType() == Calibration::Type::None) { + DisableCalibration(); + } else { ApplyCalibration(cal.getType()); } }); @@ -127,7 +127,11 @@ VNA::VNA(AppWindow *window) auto calEditKit = calMenu->addAction("Edit Calibration Kit"); connect(calEditKit, &QAction::triggered, [=](){ - cal.getCalibrationKit().edit(); + cal.getCalibrationKit().edit([=](){ + if(calValid) { + ApplyCalibration(cal.getType()); + } + }); }); portExtension.setCalkit(&cal.getCalibrationKit());