From f7a1668c3fee8dd8f8a882fbf47aff6070d05f57 Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Tue, 10 Dec 2024 11:44:24 -0500 Subject: [PATCH 1/6] Add radar site threshold setting --- .../source/scwx/qt/map/radar_site_layer.cpp | 13 +- .../scwx/qt/settings/general_settings.cpp | 15 +- .../scwx/qt/settings/general_settings.hpp | 1 + scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 8 + scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 627 +++++++++--------- 5 files changed, 362 insertions(+), 302 deletions(-) diff --git a/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp b/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp index 33486185..ef1de516 100644 --- a/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp +++ b/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -59,6 +60,16 @@ void RadarSiteLayer::Initialize() void RadarSiteLayer::Render( const QMapLibre::CustomLayerRenderParameters& params) { + p->hoverText_.clear(); + + auto mapDistance = util::maplibre::GetMapDistance(params); + auto threshold = units::length::nautical_miles( + settings::GeneralSettings::Instance().radar_site_threshold().GetValue()); + if (threshold.value() != 0.0 && mapDistance > threshold) + { + return; + } + gl::OpenGLFunctions& gl = context()->gl(); context()->set_render_parameters(params); @@ -73,8 +84,6 @@ void RadarSiteLayer::Render( p->halfWidth_ = params.width * 0.5f; p->halfHeight_ = params.height * 0.5f; - p->hoverText_.clear(); - // Radar site ImGui windows shouldn't have padding ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2 {0.0f, 0.0f}); diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.cpp b/scwx-qt/source/scwx/qt/settings/general_settings.cpp index 3c0ee929..64da33a1 100644 --- a/scwx-qt/source/scwx/qt/settings/general_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/general_settings.cpp @@ -78,6 +78,7 @@ public: updateNotificationsEnabled_.SetDefault(true); warningsProvider_.SetDefault(defaultWarningsProviderValue); cursorIconAlwaysOn_.SetDefault(false); + radarSiteThreshold_.SetDefault(0.0); fontSizes_.SetElementMinimum(1); fontSizes_.SetElementMaximum(72); @@ -95,6 +96,8 @@ public: loopTime_.SetMaximum(1440); nmeaBaudRate_.SetMinimum(1); nmeaBaudRate_.SetMaximum(999999999); + radarSiteThreshold_.SetMinimum(0); + radarSiteThreshold_.SetMaximum(999); customStyleDrawLayer_.SetTransform([](const std::string& value) { return boost::trim_copy(value); }); @@ -168,6 +171,7 @@ public: SettingsVariable updateNotificationsEnabled_ {"update_notifications"}; SettingsVariable warningsProvider_ {"warnings_provider"}; SettingsVariable cursorIconAlwaysOn_ {"cursor_icon_always_on"}; + SettingsVariable radarSiteThreshold_ {"radar_site_threshold"}; }; GeneralSettings::GeneralSettings() : @@ -201,7 +205,8 @@ GeneralSettings::GeneralSettings() : &p->trackLocation_, &p->updateNotificationsEnabled_, &p->warningsProvider_, - &p->cursorIconAlwaysOn_}); + &p->cursorIconAlwaysOn_, + &p->radarSiteThreshold_}); SetDefaults(); } GeneralSettings::~GeneralSettings() = default; @@ -356,6 +361,11 @@ SettingsVariable& GeneralSettings::cursor_icon_always_on() const return p->cursorIconAlwaysOn_; } +SettingsVariable& GeneralSettings::radar_site_threshold() const +{ + return p->radarSiteThreshold_; +} + bool GeneralSettings::Shutdown() { bool dataChanged = false; @@ -406,7 +416,8 @@ bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs) lhs.p->updateNotificationsEnabled_ == rhs.p->updateNotificationsEnabled_ && lhs.p->warningsProvider_ == rhs.p->warningsProvider_ && - lhs.p->cursorIconAlwaysOn_ == rhs.p->cursorIconAlwaysOn_); + lhs.p->cursorIconAlwaysOn_ == rhs.p->cursorIconAlwaysOn_ && + lhs.p->radarSiteThreshold_ == rhs.p->radarSiteThreshold_); } } // namespace settings diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.hpp b/scwx-qt/source/scwx/qt/settings/general_settings.hpp index 46004c57..46b342d7 100644 --- a/scwx-qt/source/scwx/qt/settings/general_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/general_settings.hpp @@ -54,6 +54,7 @@ public: SettingsVariable& update_notifications_enabled() const; SettingsVariable& warnings_provider() const; SettingsVariable& cursor_icon_always_on() const; + SettingsVariable& radar_site_threshold() const; static GeneralSettings& Instance(); diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index 1872be26..9bf589bf 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -133,6 +133,7 @@ public: &nmeaBaudRate_, &nmeaSource_, &warningsProvider_, + &radarSiteThreshold_, &antiAliasingEnabled_, &showMapAttribution_, &showMapCenter_, @@ -249,6 +250,7 @@ public: settings::SettingsInterface theme_ {}; settings::SettingsInterface themeFile_ {}; settings::SettingsInterface warningsProvider_ {}; + settings::SettingsInterface radarSiteThreshold_ {}; settings::SettingsInterface antiAliasingEnabled_ {}; settings::SettingsInterface showMapAttribution_ {}; settings::SettingsInterface showMapCenter_ {}; @@ -749,6 +751,12 @@ void SettingsDialogImpl::SetupGeneralTab() warningsProvider_.SetResetButton(self_->ui->resetWarningsProviderButton); warningsProvider_.EnableTrimming(); + radarSiteThreshold_.SetSettingsVariable( + generalSettings.radar_site_threshold()); + radarSiteThreshold_.SetEditWidget( + self_->ui->radarSiteThresholdSpinBox); + radarSiteThreshold_.SetResetButton(self_->ui->resetRadarSiteThresholdButton); + antiAliasingEnabled_.SetSettingsVariable( generalSettings.anti_aliasing_enabled()); antiAliasingEnabled_.SetEditWidget(self_->ui->antiAliasingEnabledCheckBox); diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index ec400682..5423c523 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -135,9 +135,9 @@ 0 - -272 - 513 - 702 + -302 + 511 + 733 @@ -159,156 +159,16 @@ 0 - - + + - ... - - - - - - - Mapbox API Key - - - - - - - Custom Map Layer - - - - - - - - - - GPS Plugin - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - - - - - - - ... - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + Grid Width - - - - GPS Source - - - - - - - - - - Warnings Provider - - - - - - - Default Radar Site - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - Grid Height - - - @@ -320,20 +180,31 @@ - - - - 1 - - - 999999999 + + + + ... - - - - QLineEdit::EchoMode::Password + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + + + + Mapbox API Key @@ -348,110 +219,8 @@ - - - - - - - GPS Baud Rate - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - Map Provider - - - - - - - - - - Theme - - - - - - - MapTiler API Key - - - - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - - - - Custom Map URL - - - - - - - - + + ... @@ -468,33 +237,8 @@ - - - - ... - - - - :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg - - - - - - - Grid Width - - - - - - - QLineEdit::EchoMode::Password - - - - - + + ... @@ -511,18 +255,33 @@ - - - - Default Alert Action + + + + QLineEdit::EchoMode::Password + + + + + + + QLineEdit::EchoMode::Password - - + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + @@ -531,8 +290,72 @@ - - + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + + + + Default Alert Action + + + + + + + MapTiler API Key + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + @@ -541,8 +364,41 @@ - - + + + + GPS Source + + + + + + + + + + Custom Map URL + + + + + + + 1 + + + 999999999 + + + + + + + + + + + ... @@ -552,6 +408,181 @@ + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + + + + Map Provider + + + + + + + Theme + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + Warnings Provider + + + + + + + Default Radar Site + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + GPS Baud Rate + + + + + + + Custom Map Layer + + + + + + + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + ... + + + + + + + Grid Height + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + GPS Plugin + + + + + + + + + + Radar Site Threshold + + + + + + + ... + + + + :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg + + + + + + + 0 + + + 999.000000000000000 + + + QAbstractSpinBox::StepType::DefaultStepType + + + From 74066aa195fb33f19f37068a6bb763001e169820 Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Tue, 10 Dec 2024 16:11:53 -0500 Subject: [PATCH 2/6] Added inverted threshold for radar sites --- scwx-qt/source/scwx/qt/map/radar_site_layer.cpp | 4 +++- scwx-qt/source/scwx/qt/settings/general_settings.cpp | 4 ++-- scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 3 +-- scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 7 +++++-- test/data | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp b/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp index ef1de516..396158f7 100644 --- a/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp +++ b/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp @@ -65,7 +65,9 @@ void RadarSiteLayer::Render( auto mapDistance = util::maplibre::GetMapDistance(params); auto threshold = units::length::nautical_miles( settings::GeneralSettings::Instance().radar_site_threshold().GetValue()); - if (threshold.value() != 0.0 && mapDistance > threshold) + + if (!(threshold.value() == 0.0 || mapDistance <= threshold || + (threshold.value() < 0 && mapDistance >= -threshold))) { return; } diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.cpp b/scwx-qt/source/scwx/qt/settings/general_settings.cpp index 64da33a1..bc07926b 100644 --- a/scwx-qt/source/scwx/qt/settings/general_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/general_settings.cpp @@ -96,8 +96,8 @@ public: loopTime_.SetMaximum(1440); nmeaBaudRate_.SetMinimum(1); nmeaBaudRate_.SetMaximum(999999999); - radarSiteThreshold_.SetMinimum(0); - radarSiteThreshold_.SetMaximum(999); + radarSiteThreshold_.SetMinimum(-10000); + radarSiteThreshold_.SetMaximum( 10000); customStyleDrawLayer_.SetTransform([](const std::string& value) { return boost::trim_copy(value); }); diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index 9bf589bf..1d895ffa 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -753,8 +753,7 @@ void SettingsDialogImpl::SetupGeneralTab() radarSiteThreshold_.SetSettingsVariable( generalSettings.radar_site_threshold()); - radarSiteThreshold_.SetEditWidget( - self_->ui->radarSiteThresholdSpinBox); + radarSiteThreshold_.SetEditWidget(self_->ui->radarSiteThresholdSpinBox); radarSiteThreshold_.SetResetButton(self_->ui->resetRadarSiteThresholdButton); antiAliasingEnabled_.SetSettingsVariable( diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index 5423c523..bf33a80d 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -135,7 +135,7 @@ 0 - -302 + -303 511 733 @@ -575,8 +575,11 @@ 0 + + -10000.000000000000000 + - 999.000000000000000 + 10000.000000000000000 QAbstractSpinBox::StepType::DefaultStepType diff --git a/test/data b/test/data index 0eb47590..4b4d9c54 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit 0eb475909f9e64ce81e7b8b39420d980b81b3baa +Subproject commit 4b4d9c54b8218aa2297dbd457e3747091570f0d2 From 7dabda88ffea69b52914b86831c9dda3b595082e Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Tue, 10 Dec 2024 16:19:14 -0500 Subject: [PATCH 3/6] fix formatting for radarSiteThreshold_.SetMaximum --- scwx-qt/source/scwx/qt/settings/general_settings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.cpp b/scwx-qt/source/scwx/qt/settings/general_settings.cpp index bc07926b..ccd7e886 100644 --- a/scwx-qt/source/scwx/qt/settings/general_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/general_settings.cpp @@ -97,7 +97,7 @@ public: nmeaBaudRate_.SetMinimum(1); nmeaBaudRate_.SetMaximum(999999999); radarSiteThreshold_.SetMinimum(-10000); - radarSiteThreshold_.SetMaximum( 10000); + radarSiteThreshold_.SetMaximum(10000); customStyleDrawLayer_.SetTransform([](const std::string& value) { return boost::trim_copy(value); }); From 9174a4de91aa4097b11939ae688ccc2300146492 Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Tue, 10 Dec 2024 16:34:22 -0500 Subject: [PATCH 4/6] Add NM unit suffix to radar site threshold spin box. --- scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index bf33a80d..02fdb206 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -572,6 +572,9 @@ + + NM + 0 From c0b7f852780db04ff3b8a3a9388138a12fb52ecd Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Fri, 13 Dec 2024 10:24:53 -0500 Subject: [PATCH 5/6] Added tooltips and changed units for radar site threshold. --- .../source/scwx/qt/map/radar_site_layer.cpp | 2 +- scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 16 ++++++++++++ scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 26 +++++++++++++++++-- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp b/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp index 396158f7..8b78fa4c 100644 --- a/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp +++ b/scwx-qt/source/scwx/qt/map/radar_site_layer.cpp @@ -63,7 +63,7 @@ void RadarSiteLayer::Render( p->hoverText_.clear(); auto mapDistance = util::maplibre::GetMapDistance(params); - auto threshold = units::length::nautical_miles( + auto threshold = units::length::kilometers( settings::GeneralSettings::Instance().radar_site_threshold().GetValue()); if (!(threshold.value() == 0.0 || mapDistance <= threshold || diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index 1d895ffa..f4956170 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -755,6 +755,22 @@ void SettingsDialogImpl::SetupGeneralTab() generalSettings.radar_site_threshold()); radarSiteThreshold_.SetEditWidget(self_->ui->radarSiteThresholdSpinBox); radarSiteThreshold_.SetResetButton(self_->ui->resetRadarSiteThresholdButton); + radarSiteThreshold_.SetUnitLabel(self_->ui->radarSiteThresholdUnitLabel); + auto radarSiteThresholdUpdateUnits = [this](const std::string& newValue) + { + types::DistanceUnits radiusUnits = + types::GetDistanceUnitsFromName(newValue); + double radiusScale = types::GetDistanceUnitsScale(radiusUnits); + std::string abbreviation = + types::GetDistanceUnitsAbbreviation(radiusUnits); + + radarSiteThreshold_.SetUnit(radiusScale, abbreviation); + }; + settings::UnitSettings::Instance() + .distance_units() + .RegisterValueStagedCallback(radarSiteThresholdUpdateUnits); + radarSiteThresholdUpdateUnits( + settings::UnitSettings::Instance().distance_units().GetValue()); antiAliasingEnabled_.SetSettingsVariable( generalSettings.anti_aliasing_enabled()); diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index 02fdb206..be599bff 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -122,7 +122,7 @@ - 0 + 3 @@ -572,8 +572,17 @@ + + + 0 + 0 + + + + Set to 0 to disable + - NM + 0 @@ -589,6 +598,16 @@ + + + + + + + + + + @@ -822,6 +841,9 @@ + + Set to 0 to disable + 2 From 9d0c1c539ccdc4d46687594371c7d146a99bde6f Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Fri, 13 Dec 2024 10:29:54 -0500 Subject: [PATCH 6/6] add const for set unit callbacks --- scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index f4956170..b3cbb427 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -758,10 +758,10 @@ void SettingsDialogImpl::SetupGeneralTab() radarSiteThreshold_.SetUnitLabel(self_->ui->radarSiteThresholdUnitLabel); auto radarSiteThresholdUpdateUnits = [this](const std::string& newValue) { - types::DistanceUnits radiusUnits = + const types::DistanceUnits radiusUnits = types::GetDistanceUnitsFromName(newValue); - double radiusScale = types::GetDistanceUnitsScale(radiusUnits); - std::string abbreviation = + const double radiusScale = types::GetDistanceUnitsScale(radiusUnits); + const std::string abbreviation = types::GetDistanceUnitsAbbreviation(radiusUnits); radarSiteThreshold_.SetUnit(radiusScale, abbreviation); @@ -1082,10 +1082,10 @@ void SettingsDialogImpl::SetupAudioTab() alertAudioRadius_.SetUnitLabel(self_->ui->alertAudioRadiusUnitsLabel); auto alertAudioRadiusUpdateUnits = [this](const std::string& newValue) { - types::DistanceUnits radiusUnits = + const types::DistanceUnits radiusUnits = types::GetDistanceUnitsFromName(newValue); - double radiusScale = types::GetDistanceUnitsScale(radiusUnits); - std::string abbreviation = + const double radiusScale = types::GetDistanceUnitsScale(radiusUnits); + const std::string abbreviation = types::GetDistanceUnitsAbbreviation(radiusUnits); alertAudioRadius_.SetUnit(radiusScale, abbreviation);