Return SettingsVariable objects instead of values

This commit is contained in:
Dan Paulat 2022-12-19 00:32:35 -06:00
parent 891b6c839f
commit 7522162095
10 changed files with 58 additions and 50 deletions

View file

@ -76,8 +76,9 @@ public:
} }
} }
std::string mapboxApiKey = std::string mapboxApiKey = manager::SettingsManager::general_settings()
manager::SettingsManager::general_settings().mapbox_api_key(); .mapbox_api_key()
.GetValue();
settings_.resetToTemplate(QMapLibreGL::Settings::MapboxSettings); settings_.resetToTemplate(QMapLibreGL::Settings::MapboxSettings);
settings_.setApiKey(QString {mapboxApiKey.c_str()}); settings_.setApiKey(QString {mapboxApiKey.c_str()});
@ -172,7 +173,7 @@ MainWindow::MainWindow(QWidget* parent) :
ui->actionAlerts->setVisible(false); ui->actionAlerts->setVisible(false);
ui->menuDebug->menuAction()->setVisible( ui->menuDebug->menuAction()->setVisible(
manager::SettingsManager::general_settings().debug_enabled()); manager::SettingsManager::general_settings().debug_enabled().GetValue());
// Configure Resource Explorer Dock // Configure Resource Explorer Dock
ui->resourceExplorerDock->setVisible(false); ui->resourceExplorerDock->setVisible(false);
@ -215,8 +216,9 @@ MainWindow::MainWindow(QWidget* parent) :
for (size_t i = 0; i < p->maps_.size(); i++) for (size_t i = 0; i < p->maps_.size(); i++)
{ {
p->SelectRadarProduct(p->maps_.at(i), p->SelectRadarProduct(p->maps_.at(i),
mapSettings.radar_product_group(i), common::GetRadarProductGroup(
mapSettings.radar_product(i), mapSettings.radar_product_group(i).GetValue()),
mapSettings.radar_product(i).GetValue(),
0); 0);
} }
@ -367,8 +369,8 @@ void MainWindowImpl::ConfigureMapLayout()
{ {
auto& generalSettings = manager::SettingsManager::general_settings(); auto& generalSettings = manager::SettingsManager::general_settings();
const int64_t gridWidth = generalSettings.grid_width(); const int64_t gridWidth = generalSettings.grid_width().GetValue();
const int64_t gridHeight = generalSettings.grid_height(); const int64_t gridHeight = generalSettings.grid_height().GetValue();
const int64_t mapCount = gridWidth * gridHeight; const int64_t mapCount = gridWidth * gridHeight;
size_t mapIndex = 0; size_t mapIndex = 0;

View file

@ -81,7 +81,8 @@ public:
prevPitch_ {0.0} prevPitch_ {0.0}
{ {
SetRadarSite(scwx::qt::manager::SettingsManager::general_settings() SetRadarSite(scwx::qt::manager::SettingsManager::general_settings()
.default_radar_site()); .default_radar_site()
.GetValue());
// Create ImGui Context // Create ImGui Context
static size_t currentMapId_ {0u}; static size_t currentMapId_ {0u};
@ -835,7 +836,9 @@ void MapWidgetImpl::InitializeNewRadarProductView(
auto radarProductView = context_->radar_product_view(); auto radarProductView = context_->radar_product_view();
std::string colorTableFile = std::string colorTableFile =
manager::SettingsManager::palette_settings().palette(colorPalette); manager::SettingsManager::palette_settings()
.palette(colorPalette)
.GetValue();
if (!colorTableFile.empty()) if (!colorTableFile.empty())
{ {
std::shared_ptr<common::ColorTable> colorTable = std::shared_ptr<common::ColorTable> colorTable =

View file

@ -61,34 +61,35 @@ GeneralSettings::GeneralSettings(GeneralSettings&&) noexcept = default;
GeneralSettings& GeneralSettings&
GeneralSettings::operator=(GeneralSettings&&) noexcept = default; GeneralSettings::operator=(GeneralSettings&&) noexcept = default;
bool GeneralSettings::debug_enabled() const SettingsVariable<bool>& GeneralSettings::debug_enabled() const
{ {
return p->debugEnabled_.GetValue(); return p->debugEnabled_;
} }
std::string GeneralSettings::default_radar_site() const SettingsVariable<std::string>& GeneralSettings::default_radar_site() const
{ {
return p->defaultRadarSite_.GetValue(); return p->defaultRadarSite_;
} }
std::vector<std::int64_t> GeneralSettings::font_sizes() const SettingsContainer<std::vector<std::int64_t>>&
GeneralSettings::font_sizes() const
{ {
return p->fontSizes_.GetValue(); return p->fontSizes_;
} }
std::int64_t GeneralSettings::grid_height() const SettingsVariable<std::int64_t>& GeneralSettings::grid_height() const
{ {
return p->gridHeight_.GetValue(); return p->gridHeight_;
} }
std::int64_t GeneralSettings::grid_width() const SettingsVariable<std::int64_t>& GeneralSettings::grid_width() const
{ {
return p->gridWidth_.GetValue(); return p->gridWidth_;
} }
std::string GeneralSettings::mapbox_api_key() const SettingsVariable<std::string>& GeneralSettings::mapbox_api_key() const
{ {
return p->mapboxApiKey_.GetValue(); return p->mapboxApiKey_;
} }
bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs) bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs)

View file

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <scwx/qt/settings/settings_category.hpp> #include <scwx/qt/settings/settings_category.hpp>
#include <scwx/qt/settings/settings_container.hpp>
#include <memory> #include <memory>
#include <string> #include <string>
@ -26,12 +27,12 @@ public:
GeneralSettings(GeneralSettings&&) noexcept; GeneralSettings(GeneralSettings&&) noexcept;
GeneralSettings& operator=(GeneralSettings&&) noexcept; GeneralSettings& operator=(GeneralSettings&&) noexcept;
bool debug_enabled() const; SettingsVariable<bool>& debug_enabled() const;
std::string default_radar_site() const; SettingsVariable<std::string>& default_radar_site() const;
std::vector<int64_t> font_sizes() const; SettingsContainer<std::vector<std::int64_t>>& font_sizes() const;
std::int64_t grid_height() const; SettingsVariable<std::int64_t>& grid_height() const;
std::int64_t grid_width() const; SettingsVariable<std::int64_t>& grid_width() const;
std::string mapbox_api_key() const; SettingsVariable<std::string>& mapbox_api_key() const;
friend bool operator==(const GeneralSettings& lhs, friend bool operator==(const GeneralSettings& lhs,
const GeneralSettings& rhs); const GeneralSettings& rhs);

View file

@ -2,6 +2,7 @@
#include <scwx/qt/config/radar_site.hpp> #include <scwx/qt/config/radar_site.hpp>
#include <scwx/qt/settings/settings_variable.hpp> #include <scwx/qt/settings/settings_variable.hpp>
#include <scwx/qt/util/json.hpp> #include <scwx/qt/util/json.hpp>
#include <scwx/common/products.hpp>
#include <scwx/util/logger.hpp> #include <scwx/util/logger.hpp>
#include <array> #include <array>
@ -124,20 +125,20 @@ std::size_t MapSettings::count() const
return kCount_; return kCount_;
} }
std::string MapSettings::radar_site(std::size_t i) const SettingsVariable<std::string>& 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<std::string>&
MapSettings::radar_product_group(std::size_t i) const
{ {
return common::GetRadarProductGroup( return p->map_[i].radarProductGroup_;
p->map_[i].radarProductGroup_.GetValue());
} }
std::string MapSettings::radar_product(std::size_t i) const SettingsVariable<std::string>& 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) bool MapSettings::ReadJson(const boost::json::object& json)

View file

@ -1,7 +1,7 @@
#pragma once #pragma once
#include <scwx/common/products.hpp>
#include <scwx/qt/settings/settings_category.hpp> #include <scwx/qt/settings/settings_category.hpp>
#include <scwx/qt/settings/settings_variable.hpp>
#include <memory> #include <memory>
#include <string> #include <string>
@ -28,9 +28,9 @@ public:
MapSettings& operator=(MapSettings&&) noexcept; MapSettings& operator=(MapSettings&&) noexcept;
std::size_t count() const; std::size_t count() const;
std::string radar_site(std::size_t i) const; SettingsVariable<std::string>& radar_site(std::size_t i) const;
common::RadarProductGroup radar_product_group(std::size_t i) const; SettingsVariable<std::string>& radar_product_group(std::size_t i) const;
std::string radar_product(std::size_t i) const; SettingsVariable<std::string>& radar_product(std::size_t i) const;
/** /**
* Reads the variables from the JSON object. * Reads the variables from the JSON object.

View file

@ -75,7 +75,8 @@ PaletteSettings::PaletteSettings(PaletteSettings&&) noexcept = default;
PaletteSettings& PaletteSettings&
PaletteSettings::operator=(PaletteSettings&&) noexcept = default; PaletteSettings::operator=(PaletteSettings&&) noexcept = default;
std::string PaletteSettings::palette(const std::string& name) const SettingsVariable<std::string>&
PaletteSettings::palette(const std::string& name) const
{ {
auto palette = p->palette_.find(name); auto palette = p->palette_.find(name);
@ -84,12 +85,7 @@ std::string PaletteSettings::palette(const std::string& name) const
palette = p->palette_.find(kDefaultKey); palette = p->palette_.find(kDefaultKey);
} }
if (palette == p->palette_.cend()) return palette->second;
{
return kDefaultPalette;
}
return palette->second.GetValue();
} }
bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs) bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs)

View file

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <scwx/qt/settings/settings_category.hpp> #include <scwx/qt/settings/settings_category.hpp>
#include <scwx/qt/settings/settings_variable.hpp>
#include <memory> #include <memory>
#include <string> #include <string>
@ -26,7 +27,7 @@ public:
PaletteSettings(PaletteSettings&&) noexcept; PaletteSettings(PaletteSettings&&) noexcept;
PaletteSettings& operator=(PaletteSettings&&) noexcept; PaletteSettings& operator=(PaletteSettings&&) noexcept;
std::string palette(const std::string& name) const; SettingsVariable<std::string>& palette(const std::string& name) const;
friend bool operator==(const PaletteSettings& lhs, friend bool operator==(const PaletteSettings& lhs,
const PaletteSettings& rhs); const PaletteSettings& rhs);

View file

@ -311,7 +311,7 @@ std::shared_ptr<Font> Font::Create(const std::string& resource)
font->p->CreateImGuiFont( font->p->CreateImGuiFont(
fontFile, fontFile,
fontData, fontData,
manager::SettingsManager::general_settings().font_sizes()); manager::SettingsManager::general_settings().font_sizes().GetValue());
font->p->atlas_ = ftgl::texture_atlas_new(512, 512, 1); font->p->atlas_ = ftgl::texture_atlas_new(512, 512, 1);
ftgl::texture_font_t* textureFont = ftgl::texture_font_new_from_memory( ftgl::texture_font_t* textureFont = ftgl::texture_font_new_from_memory(

View file

@ -85,10 +85,13 @@ TEST_F(SettingsManagerTest, SettingsKeax)
SettingsManager::ReadSettings(filename); 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) 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");
} }
} }