From 9ed73cfa13a0cefddc0ed34625948e94847a840d Mon Sep 17 00:00:00 2001 From: Zoran Kostic <60575976+nbgsmk@users.noreply.github.com> Date: Mon, 7 Dec 2020 16:04:59 +0100 Subject: [PATCH] Cal widget with coloured tooltip --- .../Calibration/calibration.cpp | 12 ++++++++++- .../PC_Application/Calibration/calibration.h | 3 +++ Software/PC_Application/VNA/vna.cpp | 21 ++++++++++++++----- Software/PC_Application/VNA/vna.h | 2 +- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/Software/PC_Application/Calibration/calibration.cpp b/Software/PC_Application/Calibration/calibration.cpp index 9c0ab31..4263a52 100644 --- a/Software/PC_Application/Calibration/calibration.cpp +++ b/Software/PC_Application/Calibration/calibration.cpp @@ -759,7 +759,8 @@ QString Calibration::descriptiveCalName(){ hi = Unit::ToString(this->maxFreq, "", " kMG", precision); } - QString tmp = Calibration::TypeToString(this->getType()) + QString tmp = + Calibration::TypeToString(this->getType()) + " " + lo + "-" + hi + " " @@ -767,6 +768,15 @@ QString Calibration::descriptiveCalName(){ return tmp; } +double Calibration::getMinFreq(){ + return this->minFreq; +} +double Calibration::getMaxFreq(){ + return this->maxFreq; +} +int Calibration::getNumPoints(){ + return this->points.size(); +} QString Calibration::getCurrentCalibrationFile(){ return this->currentCalFile; } diff --git a/Software/PC_Application/Calibration/calibration.h b/Software/PC_Application/Calibration/calibration.h index 488e6d1..0ae16c4 100644 --- a/Software/PC_Application/Calibration/calibration.h +++ b/Software/PC_Application/Calibration/calibration.h @@ -143,6 +143,9 @@ private: QString currentCalFile; public: QString getCurrentCalibrationFile(); + double getMinFreq(); + double getMaxFreq(); + int getNumPoints(); }; #endif // CALIBRATION_H diff --git a/Software/PC_Application/VNA/vna.cpp b/Software/PC_Application/VNA/vna.cpp index c37ecc3..258e371 100644 --- a/Software/PC_Application/VNA/vna.cpp +++ b/Software/PC_Application/VNA/vna.cpp @@ -288,7 +288,7 @@ VNA::VNA(AppWindow *window) // Calibration toolbar (and populate calibration menu) auto tb_cal = new QToolBar("Calibration"); QLabel *cbEnableCal_label = new QLabel("Calibration:"); - cbEnableCal_label->setStyleSheet(getCalStyleStr()); // on app start + cbEnableCal_label->setStyleSheet(getCalStyle()); // on app start cbEnableCal_label->setToolTip(getCalToolTip()); // no cal. file loaded tb_cal->addWidget(cbEnableCal_label); auto cbEnableCal = new QCheckBox; @@ -329,7 +329,7 @@ VNA::VNA(AppWindow *window) cbEnableCal->blockSignals(true); calDisable->setChecked(true); cbEnableCal->setCheckState(Qt::CheckState::Unchecked); - cbEnableCal_label->setStyleSheet(getCalStyleStr()); // visually indicate loss of calibration + cbEnableCal_label->setStyleSheet(getCalStyle()); // visually indicate loss of calibration cbEnableCal_label->setToolTip(getCalToolTip()); // cal. file unknown at this moment cbType->blockSignals(false); cbEnableCal->blockSignals(false); @@ -348,7 +348,7 @@ VNA::VNA(AppWindow *window) } } cbEnableCal->setCheckState(Qt::CheckState::Checked); - cbEnableCal_label->setStyleSheet(getCalStyleStr()); // restore default look of widget + cbEnableCal_label->setStyleSheet(getCalStyle()); // restore default look of widget cbEnableCal_label->setToolTip(getCalToolTip()); // on hover, show name of active cal. file cbType->blockSignals(false); cbEnableCal->blockSignals(false); @@ -414,7 +414,7 @@ VNA::VNA(AppWindow *window) finalize(central); } -QString VNA::getCalStyleStr() +QString VNA::getCalStyle() { Calibration::InterpolationType interpol = cal.getInterpolation(settings); QString style = ""; @@ -446,8 +446,19 @@ QString VNA::getCalToolTip() case Calibration::InterpolationType::Exact: case Calibration::InterpolationType::Interpolate: case Calibration::InterpolationType::Extrapolate: - txt = cal.getCurrentCalibrationFile(); + { + QString lo = Unit::ToString(cal.getMinFreq(), "", " kMG", 5); + QString hi = Unit::ToString(cal.getMaxFreq(), "", " kMG", 5); + if (settings.f_start < cal.getMinFreq() ) { lo = "" + lo + "";} + if (settings.f_stop > cal.getMaxFreq() ) { hi = "" + hi + "";} + txt = + "limits: " + lo + " - " + hi + + "
" + + "points: " + QString::number(cal.getNumPoints()) + + "
" + "file: " + cal.getCurrentCalibrationFile(); break; + } case Calibration::InterpolationType::NoCalibration: txt = "none"; break; diff --git a/Software/PC_Application/VNA/vna.h b/Software/PC_Application/VNA/vna.h index 0912279..c30de43 100644 --- a/Software/PC_Application/VNA/vna.h +++ b/Software/PC_Application/VNA/vna.h @@ -70,7 +70,7 @@ private: bool calMeasuring; bool calWaitFirst; QProgressDialog calDialog; - QString getCalStyleStr(); + QString getCalStyle(); QString getCalToolTip();