From cc0ebcd13cdd44a61b90dd395cf50360f8bc7b76 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 15 Dec 2024 06:39:26 -0600 Subject: [PATCH] Save radar smoothing state in settings --- scwx-qt/source/scwx/qt/main/main_window.cpp | 27 ++++++++++++++------- scwx-qt/source/scwx/qt/map/map_widget.cpp | 4 +++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index ca2cde28..313234d0 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -1092,16 +1092,25 @@ void MainWindowImpl::ConnectOtherSignals() } } }); - connect(mainWindow_->ui->smoothRadarDataCheckBox, - &QCheckBox::checkStateChanged, - mainWindow_, - [this](Qt::CheckState state) - { - bool smoothingEnabled = (state == Qt::CheckState::Checked); + connect( + mainWindow_->ui->smoothRadarDataCheckBox, + &QCheckBox::checkStateChanged, + mainWindow_, + [this](Qt::CheckState state) + { + bool smoothingEnabled = (state == Qt::CheckState::Checked); - // Turn on smoothing - activeMap_->SetSmoothingEnabled(smoothingEnabled); - }); + auto it = std::find(maps_.cbegin(), maps_.cend(), activeMap_); + if (it != maps_.cend()) + { + std::size_t i = std::distance(maps_.cbegin(), it); + settings::MapSettings::Instance().smoothing_enabled(i).StageValue( + smoothingEnabled); + } + + // Turn on smoothing + activeMap_->SetSmoothingEnabled(smoothingEnabled); + }); connect(mainWindow_->ui->trackLocationCheckBox, &QCheckBox::checkStateChanged, mainWindow_, diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp index 1fa62f97..df45024a 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.cpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -105,13 +106,16 @@ public: map::AlertLayer::InitializeHandler(); auto& generalSettings = settings::GeneralSettings::Instance(); + auto& mapSettings = settings::MapSettings::Instance(); // Initialize context context_->set_map_provider( GetMapProvider(generalSettings.map_provider().GetValue())); context_->set_overlay_product_view(overlayProductView); + // Initialize map data SetRadarSite(generalSettings.default_radar_site().GetValue()); + smoothingEnabled_ = mapSettings.smoothing_enabled(id).GetValue(); // Create ImGui Context static size_t currentMapId_ {0u};