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 =
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;

View file

@ -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<common::ColorTable> colorTable =

View file

@ -61,34 +61,35 @@ GeneralSettings::GeneralSettings(GeneralSettings&&) noexcept = default;
GeneralSettings&
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)

View file

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

View file

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

View file

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

View file

@ -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<std::string>&
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)

View file

@ -1,6 +1,7 @@
#pragma once
#include <scwx/qt/settings/settings_category.hpp>
#include <scwx/qt/settings/settings_variable.hpp>
#include <memory>
#include <string>
@ -26,7 +27,7 @@ public:
PaletteSettings(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,
const PaletteSettings& rhs);

View file

@ -311,7 +311,7 @@ std::shared_ptr<Font> 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(

View file

@ -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");
}
}