diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index e5326729..53c21dfb 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -76,8 +76,9 @@ public: } } - std::string mapboxApiKey = - manager::SettingsManager::general_settings().mapbox_api_key(); + std::string mapboxApiKey = manager::SettingsManager::general_settings() + .mapbox_api_key() + .GetValue(); settings_.resetToTemplate(QMapLibreGL::Settings::MapboxSettings); settings_.setApiKey(QString {mapboxApiKey.c_str()}); @@ -172,7 +173,7 @@ MainWindow::MainWindow(QWidget* parent) : ui->actionAlerts->setVisible(false); ui->menuDebug->menuAction()->setVisible( - manager::SettingsManager::general_settings().debug_enabled()); + manager::SettingsManager::general_settings().debug_enabled().GetValue()); // Configure Resource Explorer Dock ui->resourceExplorerDock->setVisible(false); @@ -215,8 +216,9 @@ MainWindow::MainWindow(QWidget* parent) : for (size_t i = 0; i < p->maps_.size(); i++) { p->SelectRadarProduct(p->maps_.at(i), - mapSettings.radar_product_group(i), - mapSettings.radar_product(i), + common::GetRadarProductGroup( + mapSettings.radar_product_group(i).GetValue()), + mapSettings.radar_product(i).GetValue(), 0); } @@ -367,8 +369,8 @@ void MainWindowImpl::ConfigureMapLayout() { auto& generalSettings = manager::SettingsManager::general_settings(); - const int64_t gridWidth = generalSettings.grid_width(); - const int64_t gridHeight = generalSettings.grid_height(); + const int64_t gridWidth = generalSettings.grid_width().GetValue(); + const int64_t gridHeight = generalSettings.grid_height().GetValue(); const int64_t mapCount = gridWidth * gridHeight; size_t mapIndex = 0; diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp index e2817192..5ead3411 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.cpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp @@ -81,7 +81,8 @@ public: prevPitch_ {0.0} { SetRadarSite(scwx::qt::manager::SettingsManager::general_settings() - .default_radar_site()); + .default_radar_site() + .GetValue()); // Create ImGui Context static size_t currentMapId_ {0u}; @@ -835,7 +836,9 @@ void MapWidgetImpl::InitializeNewRadarProductView( auto radarProductView = context_->radar_product_view(); std::string colorTableFile = - manager::SettingsManager::palette_settings().palette(colorPalette); + manager::SettingsManager::palette_settings() + .palette(colorPalette) + .GetValue(); if (!colorTableFile.empty()) { std::shared_ptr colorTable = diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.cpp b/scwx-qt/source/scwx/qt/settings/general_settings.cpp index 4506f9fb..ddc2098a 100644 --- a/scwx-qt/source/scwx/qt/settings/general_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/general_settings.cpp @@ -61,34 +61,35 @@ GeneralSettings::GeneralSettings(GeneralSettings&&) noexcept = default; GeneralSettings& GeneralSettings::operator=(GeneralSettings&&) noexcept = default; -bool GeneralSettings::debug_enabled() const +SettingsVariable& GeneralSettings::debug_enabled() const { - return p->debugEnabled_.GetValue(); + return p->debugEnabled_; } -std::string GeneralSettings::default_radar_site() const +SettingsVariable& GeneralSettings::default_radar_site() const { - return p->defaultRadarSite_.GetValue(); + return p->defaultRadarSite_; } -std::vector GeneralSettings::font_sizes() const +SettingsContainer>& +GeneralSettings::font_sizes() const { - return p->fontSizes_.GetValue(); + return p->fontSizes_; } -std::int64_t GeneralSettings::grid_height() const +SettingsVariable& GeneralSettings::grid_height() const { - return p->gridHeight_.GetValue(); + return p->gridHeight_; } -std::int64_t GeneralSettings::grid_width() const +SettingsVariable& GeneralSettings::grid_width() const { - return p->gridWidth_.GetValue(); + return p->gridWidth_; } -std::string GeneralSettings::mapbox_api_key() const +SettingsVariable& GeneralSettings::mapbox_api_key() const { - return p->mapboxApiKey_.GetValue(); + return p->mapboxApiKey_; } bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs) diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.hpp b/scwx-qt/source/scwx/qt/settings/general_settings.hpp index 92badfa7..1770150f 100644 --- a/scwx-qt/source/scwx/qt/settings/general_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/general_settings.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -26,12 +27,12 @@ public: GeneralSettings(GeneralSettings&&) noexcept; GeneralSettings& operator=(GeneralSettings&&) noexcept; - bool debug_enabled() const; - std::string default_radar_site() const; - std::vector font_sizes() const; - std::int64_t grid_height() const; - std::int64_t grid_width() const; - std::string mapbox_api_key() const; + SettingsVariable& debug_enabled() const; + SettingsVariable& default_radar_site() const; + SettingsContainer>& font_sizes() const; + SettingsVariable& grid_height() const; + SettingsVariable& grid_width() const; + SettingsVariable& mapbox_api_key() const; friend bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs); diff --git a/scwx-qt/source/scwx/qt/settings/map_settings.cpp b/scwx-qt/source/scwx/qt/settings/map_settings.cpp index 06f25bd1..aba0cb46 100644 --- a/scwx-qt/source/scwx/qt/settings/map_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/map_settings.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -124,20 +125,20 @@ std::size_t MapSettings::count() const return kCount_; } -std::string MapSettings::radar_site(std::size_t i) const +SettingsVariable& MapSettings::radar_site(std::size_t i) const { - return p->map_[i].radarSite_.GetValue(); + return p->map_[i].radarSite_; } -common::RadarProductGroup MapSettings::radar_product_group(std::size_t i) const +SettingsVariable& +MapSettings::radar_product_group(std::size_t i) const { - return common::GetRadarProductGroup( - p->map_[i].radarProductGroup_.GetValue()); + return p->map_[i].radarProductGroup_; } -std::string MapSettings::radar_product(std::size_t i) const +SettingsVariable& MapSettings::radar_product(std::size_t i) const { - return p->map_[i].radarProduct_.GetValue(); + return p->map_[i].radarProduct_; } bool MapSettings::ReadJson(const boost::json::object& json) diff --git a/scwx-qt/source/scwx/qt/settings/map_settings.hpp b/scwx-qt/source/scwx/qt/settings/map_settings.hpp index 299eaf82..1921c530 100644 --- a/scwx-qt/source/scwx/qt/settings/map_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/map_settings.hpp @@ -1,7 +1,7 @@ #pragma once -#include #include +#include #include #include @@ -27,10 +27,10 @@ public: MapSettings(MapSettings&&) noexcept; MapSettings& operator=(MapSettings&&) noexcept; - std::size_t count() const; - std::string radar_site(std::size_t i) const; - common::RadarProductGroup radar_product_group(std::size_t i) const; - std::string radar_product(std::size_t i) const; + std::size_t count() const; + SettingsVariable& radar_site(std::size_t i) const; + SettingsVariable& radar_product_group(std::size_t i) const; + SettingsVariable& radar_product(std::size_t i) const; /** * Reads the variables from the JSON object. diff --git a/scwx-qt/source/scwx/qt/settings/palette_settings.cpp b/scwx-qt/source/scwx/qt/settings/palette_settings.cpp index a0146e58..4fb378d5 100644 --- a/scwx-qt/source/scwx/qt/settings/palette_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/palette_settings.cpp @@ -75,7 +75,8 @@ PaletteSettings::PaletteSettings(PaletteSettings&&) noexcept = default; PaletteSettings& PaletteSettings::operator=(PaletteSettings&&) noexcept = default; -std::string PaletteSettings::palette(const std::string& name) const +SettingsVariable& +PaletteSettings::palette(const std::string& name) const { auto palette = p->palette_.find(name); @@ -84,12 +85,7 @@ std::string PaletteSettings::palette(const std::string& name) const palette = p->palette_.find(kDefaultKey); } - if (palette == p->palette_.cend()) - { - return kDefaultPalette; - } - - return palette->second.GetValue(); + return palette->second; } bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs) diff --git a/scwx-qt/source/scwx/qt/settings/palette_settings.hpp b/scwx-qt/source/scwx/qt/settings/palette_settings.hpp index d67ded18..0edcc4ab 100644 --- a/scwx-qt/source/scwx/qt/settings/palette_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/palette_settings.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -26,7 +27,7 @@ public: PaletteSettings(PaletteSettings&&) noexcept; PaletteSettings& operator=(PaletteSettings&&) noexcept; - std::string palette(const std::string& name) const; + SettingsVariable& palette(const std::string& name) const; friend bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs); diff --git a/scwx-qt/source/scwx/qt/util/font.cpp b/scwx-qt/source/scwx/qt/util/font.cpp index 8e49369a..a8786753 100644 --- a/scwx-qt/source/scwx/qt/util/font.cpp +++ b/scwx-qt/source/scwx/qt/util/font.cpp @@ -311,7 +311,7 @@ std::shared_ptr Font::Create(const std::string& resource) font->p->CreateImGuiFont( fontFile, fontData, - manager::SettingsManager::general_settings().font_sizes()); + manager::SettingsManager::general_settings().font_sizes().GetValue()); font->p->atlas_ = ftgl::texture_atlas_new(512, 512, 1); ftgl::texture_font_t* textureFont = ftgl::texture_font_new_from_memory( diff --git a/test/source/scwx/qt/manager/settings_manager.test.cpp b/test/source/scwx/qt/manager/settings_manager.test.cpp index f946fdfe..be576069 100644 --- a/test/source/scwx/qt/manager/settings_manager.test.cpp +++ b/test/source/scwx/qt/manager/settings_manager.test.cpp @@ -85,10 +85,13 @@ TEST_F(SettingsManagerTest, SettingsKeax) SettingsManager::ReadSettings(filename); - EXPECT_EQ(SettingsManager::general_settings().default_radar_site(), "KEAX"); + EXPECT_EQ( + SettingsManager::general_settings().default_radar_site().GetValue(), + "KEAX"); for (size_t i = 0; i < SettingsManager::map_settings().count(); ++i) { - EXPECT_EQ(SettingsManager::map_settings().radar_site(i), "KEAX"); + EXPECT_EQ(SettingsManager::map_settings().radar_site(i).GetValue(), + "KEAX"); } }