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

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