From 798ffc48671bfa6a539b4185d7b0b005ef495f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 13 Apr 2025 14:42:16 +0200 Subject: [PATCH] update marker symbol when preferences are updated --- .../PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp | 4 +++- Software/PC_Application/LibreVNA-GUI/preferences.cpp | 3 +++ Software/PC_Application/LibreVNA-GUI/preferences.h | 6 +++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp b/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp index 38e21fd..e3b0e7b 100644 --- a/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Traces/Marker/marker.cpp @@ -46,6 +46,8 @@ Marker::Marker(MarkerModel *model, int number, Marker *parent, QString descr) connect(this, &Marker::traceChanged, this, &Marker::updateContextmenu); connect(this, &Marker::typeChanged, this, &Marker::updateContextmenu); updateContextmenu(); + + connect(&Preferences::getInstance(), &Preferences::updated, this, &Marker::updateSymbol); } Marker::~Marker() @@ -815,7 +817,7 @@ void Marker::traceDataChanged(unsigned int begin, unsigned int end) void Marker::updateSymbol() { - if(isDisplayedMarker()) { + if(isDisplayedMarker() && parentTrace) { auto style = Preferences::getInstance().Marker.symbolStyle; switch(style) { case MarkerSymbolStyle::FilledNumberInside: { diff --git a/Software/PC_Application/LibreVNA-GUI/preferences.cpp b/Software/PC_Application/LibreVNA-GUI/preferences.cpp index 69a6b7b..b887e1e 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferences.cpp +++ b/Software/PC_Application/LibreVNA-GUI/preferences.cpp @@ -183,10 +183,12 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) : // apply GUI state to settings updateFromGUI(); accept(); + emit p->updated(); }); connect(ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked, [=](){ // apply GUI state to settings updateFromGUI(); + emit p->updated(); }); connect(ui->buttonBox->button(QDialogButtonBox::Save), &QPushButton::clicked, [=](){ auto filename = QFileDialog::getSaveFileName(this, "Save preferences", "", "LibreVNA preferences files (*.vnapref)", nullptr, Preferences::QFileDialogOptions()); @@ -211,6 +213,7 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) : file.close(); p->fromJSON(j); setInitialGUIState(); + emit p->updated(); } }); connect(ui->AcquisitionLimitTDRCheckbox, &QCheckBox::toggled, [=](bool enabled){ diff --git a/Software/PC_Application/LibreVNA-GUI/preferences.h b/Software/PC_Application/LibreVNA-GUI/preferences.h index ac70402..73c80c7 100644 --- a/Software/PC_Application/LibreVNA-GUI/preferences.h +++ b/Software/PC_Application/LibreVNA-GUI/preferences.h @@ -44,7 +44,8 @@ enum MarkerSymbolStyle { Q_DECLARE_METATYPE(MarkerSymbolStyle); -class Preferences : public Savable { +class Preferences : public QObject, public Savable { + Q_OBJECT friend class PreferencesDialog; public: static Preferences& getInstance() { @@ -207,6 +208,9 @@ public: bool set(QString name, QVariant value); QVariant get(QString name); +signals: + void updated(); + private: Preferences() : TCPoverride(false) {}