From 6c1bc842f0a8ea90a1009f142ac5720984af46b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 30 Oct 2022 13:05:05 +0100 Subject: [PATCH] select individual default formats to show for markers --- .../LibreVNA-GUI/Traces/Marker/marker.cpp | 78 ++++++- .../LibreVNA-GUI/Traces/Marker/marker.h | 1 + .../LibreVNA-GUI/preferences.cpp | 64 +++++- .../PC_Application/LibreVNA-GUI/preferences.h | 24 +- .../LibreVNA-GUI/preferencesdialog.ui | 210 ++++++++++++++++-- 5 files changed, 348 insertions(+), 29 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp index 9aa814e..c0207d4 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp @@ -93,12 +93,13 @@ void Marker::assignTrace(Trace *t) // Use display format on graph from preferences auto& p = Preferences::getInstance(); if(p.Marker.defaultBehavior.showDataOnGraphs) { - if(p.Marker.defaultBehavior.showAllData) { - for(auto f : applicableFormats()) { - formatGraph.insert(f); + auto applicable = applicableFormats(); + for(auto f : defaultActiveFormats()) { + if(find(applicable.begin(), applicable.end(), f) == applicable.end()) { + // this format is not allowed for this marker + continue; } - } else { - formatGraph.insert(applicableFormats().front()); + formatGraph.insert(f); } } } @@ -298,6 +299,73 @@ std::vector Marker::applicableFormats() return ret; } +std::vector Marker::defaultActiveFormats() +{ + std::vector ret; + auto &pref = Preferences::getInstance(); + if(pref.Marker.defaultBehavior.showdB) { + ret.push_back(Format::dB); + } + if(pref.Marker.defaultBehavior.showdBm) { + ret.push_back(Format::dBm); + } + if(pref.Marker.defaultBehavior.showdBuV) { + ret.push_back(Format::dBuV); + } + if(pref.Marker.defaultBehavior.showdBAngle) { + ret.push_back(Format::dBAngle); + } + if(pref.Marker.defaultBehavior.showRealImag) { + ret.push_back(Format::RealImag); + } + if(pref.Marker.defaultBehavior.showImpedance) { + ret.push_back(Format::Impedance); + } + if(pref.Marker.defaultBehavior.showVSWR) { + ret.push_back(Format::VSWR); + } + if(pref.Marker.defaultBehavior.showResistance) { + ret.push_back(Format::SeriesR); + } + if(pref.Marker.defaultBehavior.showCapacitance) { + ret.push_back(Format::Capacitance); + } + if(pref.Marker.defaultBehavior.showInductance) { + ret.push_back(Format::Inductance); + } + if(pref.Marker.defaultBehavior.showQualityFactor) { + ret.push_back(Format::QualityFactor); + } + if(pref.Marker.defaultBehavior.showNoise) { + ret.push_back(Format::Noise); + } + if(pref.Marker.defaultBehavior.showPhasenoise) { + ret.push_back(Format::PhaseNoise); + } + if(pref.Marker.defaultBehavior.showCenterBandwidth) { + ret.push_back(Format::CenterBandwidth); + } + if(pref.Marker.defaultBehavior.showCutoff) { + ret.push_back(Format::Cutoff); + } + if(pref.Marker.defaultBehavior.showInsertionLoss) { + ret.push_back(Format::InsertionLoss); + } + if(pref.Marker.defaultBehavior.showTOI) { + ret.push_back(Format::TOI); + } + if(pref.Marker.defaultBehavior.showAvgTone) { + ret.push_back(Format::AvgTone); + } + if(pref.Marker.defaultBehavior.showAvgModulation) { + ret.push_back(Format::AvgModulationProduct); + } + if(pref.Marker.defaultBehavior.showP1dB) { + ret.push_back(Format::P1dB); + } + return ret; +} + QString Marker::readableData(Format f) { if(!parentTrace) { diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.h b/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.h index 7a6ae17..3212698 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.h +++ b/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.h @@ -55,6 +55,7 @@ public: static Format formatFromString(QString s); static std::vector formats(); std::vector applicableFormats(); + std::vector defaultActiveFormats(); QString readableData(Format format = Format::Last); QString readablePosition(); diff --git a/Software/PC_Application/LibreVNA-GUI/preferences.cpp b/Software/PC_Application/LibreVNA-GUI/preferences.cpp index 58b7246..9afda95 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferences.cpp +++ b/Software/PC_Application/LibreVNA-GUI/preferences.cpp @@ -140,7 +140,26 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) : } connect(ui->MarkerShowMarkerData, &QCheckBox::toggled, [=](bool enabled) { - ui->MarkerShowAllMarkerData->setEnabled(enabled); + ui->MarkerShowdB->setEnabled(enabled); + ui->MarkerShowdBm->setEnabled(enabled); + ui->MarkerShowdBUv->setEnabled(enabled); + ui->MarkerShowdBAngle->setEnabled(enabled); + ui->MarkerShowRealImag->setEnabled(enabled); + ui->MarkerShowImpedance->setEnabled(enabled); + ui->MarkerShowVSWR->setEnabled(enabled); + ui->MarkerShowResistance->setEnabled(enabled); + ui->MarkerShowCapacitance->setEnabled(enabled); + ui->MarkerShowInductance->setEnabled(enabled); + ui->MarkerShowQualityFactor->setEnabled(enabled); + ui->MarkerShowNoise->setEnabled(enabled); + ui->MarkerShowPhasenoise->setEnabled(enabled); + ui->MarkerShowCenterBandwidth->setEnabled(enabled); + ui->MarkerShowCutoff->setEnabled(enabled); + ui->MarkerShowInsertionLoss->setEnabled(enabled); + ui->MarkerShowTOI->setEnabled(enabled); + ui->MarkerShowAvgTone->setEnabled(enabled); + ui->MarkerShowAvgMod->setEnabled(enabled); + ui->MarkerShowP1dB->setEnabled(enabled); }); // Compound device page @@ -336,7 +355,27 @@ void PreferencesDialog::setInitialGUIState() ui->GraphsSweepHidePercent->setValue(p->Graphs.SweepIndicator.hidePercent); ui->MarkerShowMarkerData->setChecked(p->Marker.defaultBehavior.showDataOnGraphs); - ui->MarkerShowAllMarkerData->setChecked(p->Marker.defaultBehavior.showAllData); + + ui->MarkerShowdB->setChecked(p->Marker.defaultBehavior.showdB); + ui->MarkerShowdBm->setChecked(p->Marker.defaultBehavior.showdBm); + ui->MarkerShowdBUv->setChecked(p->Marker.defaultBehavior.showdBuV); + ui->MarkerShowdBAngle->setChecked(p->Marker.defaultBehavior.showdBAngle); + ui->MarkerShowRealImag->setChecked(p->Marker.defaultBehavior.showRealImag); + ui->MarkerShowImpedance->setChecked(p->Marker.defaultBehavior.showImpedance); + ui->MarkerShowVSWR->setChecked(p->Marker.defaultBehavior.showVSWR); + ui->MarkerShowResistance->setChecked(p->Marker.defaultBehavior.showResistance); + ui->MarkerShowCapacitance->setChecked(p->Marker.defaultBehavior.showCapacitance); + ui->MarkerShowInductance->setChecked(p->Marker.defaultBehavior.showInductance); + ui->MarkerShowQualityFactor->setChecked(p->Marker.defaultBehavior.showQualityFactor); + ui->MarkerShowNoise->setChecked(p->Marker.defaultBehavior.showNoise); + ui->MarkerShowPhasenoise->setChecked(p->Marker.defaultBehavior.showPhasenoise); + ui->MarkerShowCenterBandwidth->setChecked(p->Marker.defaultBehavior.showCenterBandwidth); + ui->MarkerShowCutoff->setChecked(p->Marker.defaultBehavior.showCutoff); + ui->MarkerShowInsertionLoss->setChecked(p->Marker.defaultBehavior.showInsertionLoss); + ui->MarkerShowTOI->setChecked(p->Marker.defaultBehavior.showTOI); + ui->MarkerShowAvgTone->setChecked(p->Marker.defaultBehavior.showAvgTone); + ui->MarkerShowAvgMod->setChecked(p->Marker.defaultBehavior.showAvgModulation); + ui->MarkerShowP1dB->setChecked(p->Marker.defaultBehavior.showP1dB); ui->MarkerInterpolate->setCurrentIndex(p->Marker.interpolatePoints ? 1 : 0); ui->MarkerSortOrder->setCurrentIndex((int) p->Marker.sortOrder); ui->MarkerSymbolStyle->setCurrentIndex((int) p->Marker.symbolStyle); @@ -418,7 +457,26 @@ void PreferencesDialog::updateFromGUI() p->Graphs.SweepIndicator.hidePercent = ui->GraphsSweepHidePercent->value(); p->Marker.defaultBehavior.showDataOnGraphs = ui->MarkerShowMarkerData->isChecked(); - p->Marker.defaultBehavior.showAllData = ui->MarkerShowAllMarkerData->isChecked(); + p->Marker.defaultBehavior.showdB = ui->MarkerShowdB->isChecked(); + p->Marker.defaultBehavior.showdBm = ui->MarkerShowdBm->isChecked(); + p->Marker.defaultBehavior.showdBuV = ui->MarkerShowdBUv->isChecked(); + p->Marker.defaultBehavior.showdBAngle = ui->MarkerShowdBAngle->isChecked(); + p->Marker.defaultBehavior.showRealImag = ui->MarkerShowRealImag->isChecked(); + p->Marker.defaultBehavior.showImpedance = ui->MarkerShowImpedance->isChecked(); + p->Marker.defaultBehavior.showVSWR = ui->MarkerShowVSWR->isChecked(); + p->Marker.defaultBehavior.showResistance = ui->MarkerShowResistance->isChecked(); + p->Marker.defaultBehavior.showCapacitance = ui->MarkerShowCapacitance->isChecked(); + p->Marker.defaultBehavior.showInductance = ui->MarkerShowInductance->isChecked(); + p->Marker.defaultBehavior.showQualityFactor = ui->MarkerShowQualityFactor->isChecked(); + p->Marker.defaultBehavior.showNoise = ui->MarkerShowNoise->isChecked(); + p->Marker.defaultBehavior.showPhasenoise = ui->MarkerShowPhasenoise->isChecked(); + p->Marker.defaultBehavior.showCenterBandwidth = ui->MarkerShowCenterBandwidth->isChecked(); + p->Marker.defaultBehavior.showCutoff = ui->MarkerShowCutoff->isChecked(); + p->Marker.defaultBehavior.showInsertionLoss = ui->MarkerShowInsertionLoss->isChecked(); + p->Marker.defaultBehavior.showTOI = ui->MarkerShowTOI->isChecked(); + p->Marker.defaultBehavior.showAvgTone = ui->MarkerShowAvgTone->isChecked(); + p->Marker.defaultBehavior.showAvgModulation = ui->MarkerShowAvgMod->isChecked(); + p->Marker.defaultBehavior.showP1dB = ui->MarkerShowP1dB->isChecked(); p->Marker.interpolatePoints = ui->MarkerInterpolate->currentIndex() == 1; p->Marker.sortOrder = (MarkerSortOrder) ui->MarkerSortOrder->currentIndex(); p->Marker.symbolStyle = (MarkerSymbolStyle) ui->MarkerSymbolStyle->currentIndex(); diff --git a/Software/PC_Application/LibreVNA-GUI/preferences.h b/Software/PC_Application/LibreVNA-GUI/preferences.h index 18d3264..f4ee7a4 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferences.h +++ b/Software/PC_Application/LibreVNA-GUI/preferences.h @@ -149,7 +149,8 @@ public: struct { struct { bool showDataOnGraphs; - bool showAllData; + bool showdB, showdBm, showdBuV, showdBAngle, showRealImag, showImpedance, showVSWR, showResistance, showCapacitance, showInductance, showQualityFactor; + bool showNoise, showPhasenoise, showCenterBandwidth, showCutoff, showInsertionLoss, showTOI, showAvgTone, showAvgModulation, showP1dB; } defaultBehavior; bool interpolatePoints; MarkerSortOrder sortOrder; @@ -240,7 +241,26 @@ private: {&Graphs.SweepIndicator.hide, "Graphs.SweepIndicator.hide", false}, {&Graphs.SweepIndicator.hidePercent, "Graphs.SweepIndicator.hidePercent", 3.0}, {&Marker.defaultBehavior.showDataOnGraphs, "Marker.defaultBehavior.ShowDataOnGraphs", true}, - {&Marker.defaultBehavior.showAllData, "Marker.defaultBehavior.ShowAllData", false}, + {&Marker.defaultBehavior.showdB, "Marker.defaultBehavior.showdB", true}, + {&Marker.defaultBehavior.showdBm, "Marker.defaultBehavior.showdBm", true}, + {&Marker.defaultBehavior.showdBuV, "Marker.defaultBehavior.showdBuV", true}, + {&Marker.defaultBehavior.showdBAngle, "Marker.defaultBehavior.showdBAngle", true}, + {&Marker.defaultBehavior.showRealImag, "Marker.defaultBehavior.showRealImag", true}, + {&Marker.defaultBehavior.showVSWR, "Marker.defaultBehavior.showVSWR", true}, + {&Marker.defaultBehavior.showImpedance, "Marker.defaultBehavior.showImpedance", true}, + {&Marker.defaultBehavior.showResistance, "Marker.defaultBehavior.showResistance", true}, + {&Marker.defaultBehavior.showCapacitance, "Marker.defaultBehavior.showCapacitance", true}, + {&Marker.defaultBehavior.showInductance, "Marker.defaultBehavior.showInductance", true}, + {&Marker.defaultBehavior.showQualityFactor, "Marker.defaultBehavior.showQualityFactor", true}, + {&Marker.defaultBehavior.showNoise, "Marker.defaultBehavior.showNoise", true}, + {&Marker.defaultBehavior.showPhasenoise, "Marker.defaultBehavior.showPhasenoise", true}, + {&Marker.defaultBehavior.showCenterBandwidth, "Marker.defaultBehavior.showCenterBandwidth", true}, + {&Marker.defaultBehavior.showCutoff, "Marker.defaultBehavior.showCutoff", true}, + {&Marker.defaultBehavior.showInsertionLoss, "Marker.defaultBehavior.showInsertionLoss", true}, + {&Marker.defaultBehavior.showTOI, "Marker.defaultBehavior.showTOI", true}, + {&Marker.defaultBehavior.showAvgTone, "Marker.defaultBehavior.showAvgTone", true}, + {&Marker.defaultBehavior.showAvgModulation, "Marker.defaultBehavior.showAvgModulation", true}, + {&Marker.defaultBehavior.showP1dB, "Marker.defaultBehavior.showP1dB", true}, {&Marker.interpolatePoints, "Marker.interpolatePoints", false}, {&Marker.sortOrder, "Marker.sortOrder", MarkerSortOrder::PrefMarkerSortXCoord}, {&Marker.symbolStyle, "Marker.symbolStyle", MarkerSymbolStyle::EmptyNumberAbove}, diff --git a/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui b/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui index 0bd9807..cd46f7c 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui +++ b/Software/PC_Application/LibreVNA-GUI/preferencesdialog.ui @@ -88,7 +88,7 @@ - 2 + 3 @@ -102,7 +102,7 @@ 0 0 - 744 + 749 920 @@ -707,8 +707,8 @@ 0 0 - 605 - 866 + 749 + 846 @@ -1027,7 +1027,7 @@ 0 - -216 + 0 749 952 @@ -1450,20 +1450,20 @@ 0 - 0 - 644 - 544 + -15 + 749 + 576 - + Default Behavior - + @@ -1472,12 +1472,187 @@ - + - Show data in all available formats + Select formats to be shown by default: + + + + + + Standard formats + + + + + + dB + + + + + + + dBm + + + + + + + dBUv + + + + + + + dB+Angle + + + + + + + Real+Imaginary + + + + + + + VSWR + + + + + + + Impedance + + + + + + + Resistance + + + + + + + Capacitance + + + + + + + Inductance + + + + + + + Quality factor + + + + + + + + + + Special marker formats + + + + + + P1dB + + + + + + + Noise + + + + + + + Phasenoise + + + + + + + Insertion loss + + + + + + + Cut-off frequency + + + + + + + Center + Bandwidth + + + + + + + TOI + + + + + + + Average Tone + + + + + + + Average Modulation + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + @@ -1594,8 +1769,8 @@ 0 0 - 644 - 544 + 168 + 127 @@ -1684,8 +1859,8 @@ 0 0 - 644 - 544 + 126 + 90 @@ -1778,7 +1953,4 @@ - - -