Update calibration when calkit dialog is closed

This commit is contained in:
Jan Käberich 2020-11-14 20:43:36 +01:00
parent 3d97e4ca20
commit 735e7096f4
4 changed files with 18 additions and 9 deletions

View File

@ -184,9 +184,14 @@ Calkit Calkit::fromFile(QString filename)
return c;
}
void Calkit::edit()
void Calkit::edit(std::function<void (void)> done)
{
auto dialog = new CalkitDialog(*this);
if(done) {
QObject::connect(dialog, &QDialog::accepted, [=](){
done();
});
}
dialog->show();
}

View File

@ -36,7 +36,7 @@ public:
void toFile(QString filename);
static Calkit fromFile(QString filename);
void edit();
void edit(std::function<void(void)> done = nullptr);
SOLT toSOLT(double frequency);
TRL toTRL(double frequency);
double minFreq(bool trl = false);

View File

@ -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);

View File

@ -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());