From 069f68a5d0882a703ef2105591ea5202eb49639b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sat, 1 Jan 2022 20:11:03 +0100 Subject: [PATCH] additional "apply" button in calkit dialog --- Software/PC_Application/Calibration/calkit.cpp | 8 ++++---- Software/PC_Application/Calibration/calkit.h | 2 +- Software/PC_Application/Calibration/calkitdialog.cpp | 6 ++++++ Software/PC_Application/Calibration/calkitdialog.h | 2 ++ Software/PC_Application/Calibration/calkitdialog.ui | 10 +++++----- .../PC_Application/Calibration/measurementmodel.cpp | 2 ++ 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Software/PC_Application/Calibration/calkit.cpp b/Software/PC_Application/Calibration/calkit.cpp index e039593..3e84369 100644 --- a/Software/PC_Application/Calibration/calkit.cpp +++ b/Software/PC_Application/Calibration/calkit.cpp @@ -193,12 +193,12 @@ Calkit Calkit::fromFile(QString filename) return c; } -void Calkit::edit(std::function done) +void Calkit::edit(std::function updateCal) { auto dialog = new CalkitDialog(*this); - if(done) { - QObject::connect(dialog, &QDialog::accepted, [=](){ - done(); + if(updateCal) { + QObject::connect(dialog, &CalkitDialog::settingsChanged, [=](){ + updateCal(); }); } dialog->show(); diff --git a/Software/PC_Application/Calibration/calkit.h b/Software/PC_Application/Calibration/calkit.h index c75d253..5502cf9 100644 --- a/Software/PC_Application/Calibration/calkit.h +++ b/Software/PC_Application/Calibration/calkit.h @@ -40,7 +40,7 @@ public: void toFile(QString filename); static Calkit fromFile(QString filename); - void edit(std::function done = nullptr); + void edit(std::function updateCal = nullptr); bool hasSeparateMaleFemaleStandards(); SOLT toSOLT(double frequency, bool male_standards = true); TRL toTRL(double frequency); diff --git a/Software/PC_Application/Calibration/calkitdialog.cpp b/Software/PC_Application/Calibration/calkitdialog.cpp index a76921b..31d9ce8 100644 --- a/Software/PC_Application/Calibration/calkitdialog.cpp +++ b/Software/PC_Application/Calibration/calkitdialog.cpp @@ -172,9 +172,15 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) : UpdateStatus(); }); + connect(ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked, [this]() { + parseEntries(); + editKit = ownKit; + emit settingsChanged(); + }); connect(ui->buttonBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, [this]() { parseEntries(); editKit = ownKit; + emit settingsChanged(); accept(); }); connect(ui->buttonBox->button(QDialogButtonBox::Cancel), &QPushButton::clicked, [this]() { diff --git a/Software/PC_Application/Calibration/calkitdialog.h b/Software/PC_Application/Calibration/calkitdialog.h index a8b02b5..ff8959f 100644 --- a/Software/PC_Application/Calibration/calkitdialog.h +++ b/Software/PC_Application/Calibration/calkitdialog.h @@ -20,6 +20,8 @@ public: explicit CalkitDialog(Calkit &c, QWidget *parent = nullptr); ~CalkitDialog(); +signals: + void settingsChanged(); private: void parseEntries(); void updateEntries(); diff --git a/Software/PC_Application/Calibration/calkitdialog.ui b/Software/PC_Application/Calibration/calkitdialog.ui index b6b29fc..bef6c3d 100644 --- a/Software/PC_Application/Calibration/calkitdialog.ui +++ b/Software/PC_Application/Calibration/calkitdialog.ui @@ -1310,7 +1310,7 @@ Qt::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Open|QDialogButtonBox::Save + QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Open|QDialogButtonBox::Save false @@ -1456,13 +1456,13 @@ - + - - - + + + diff --git a/Software/PC_Application/Calibration/measurementmodel.cpp b/Software/PC_Application/Calibration/measurementmodel.cpp index 0f382b2..92f8f7c 100644 --- a/Software/PC_Application/Calibration/measurementmodel.cpp +++ b/Software/PC_Application/Calibration/measurementmodel.cpp @@ -73,6 +73,8 @@ QVariant MeasurementModel::data(const QModelIndex &index, int role) const case ColIndex::Date: return info.timestamp.toString("dd.MM.yyyy hh:mm:ss"); break; + case ColIndex::Last: + return ""; } } else if(role == Qt::SizeHintRole) { switch((ColIndex) index.column()) {