mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 09:50:06 +00:00 
			
		
		
		
	Refactor settings to be managed by singletons
This commit is contained in:
		
							parent
							
								
									acc782b2bc
								
							
						
					
					
						commit
						b66ca2cb09
					
				
					 21 changed files with 138 additions and 133 deletions
				
			
		|  | @ -7,13 +7,14 @@ | ||||||
| #include <scwx/qt/main/versions.hpp> | #include <scwx/qt/main/versions.hpp> | ||||||
| #include <scwx/qt/manager/placefile_manager.hpp> | #include <scwx/qt/manager/placefile_manager.hpp> | ||||||
| #include <scwx/qt/manager/radar_product_manager.hpp> | #include <scwx/qt/manager/radar_product_manager.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> |  | ||||||
| #include <scwx/qt/manager/text_event_manager.hpp> | #include <scwx/qt/manager/text_event_manager.hpp> | ||||||
| #include <scwx/qt/manager/timeline_manager.hpp> | #include <scwx/qt/manager/timeline_manager.hpp> | ||||||
| #include <scwx/qt/manager/update_manager.hpp> | #include <scwx/qt/manager/update_manager.hpp> | ||||||
| #include <scwx/qt/map/map_provider.hpp> | #include <scwx/qt/map/map_provider.hpp> | ||||||
| #include <scwx/qt/map/map_widget.hpp> | #include <scwx/qt/map/map_widget.hpp> | ||||||
| #include <scwx/qt/model/radar_product_model.hpp> | #include <scwx/qt/model/radar_product_model.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/map_settings.hpp> | ||||||
| #include <scwx/qt/settings/ui_settings.hpp> | #include <scwx/qt/settings/ui_settings.hpp> | ||||||
| #include <scwx/qt/ui/about_dialog.hpp> | #include <scwx/qt/ui/about_dialog.hpp> | ||||||
| #include <scwx/qt/ui/alert_dock_widget.hpp> | #include <scwx/qt/ui/alert_dock_widget.hpp> | ||||||
|  | @ -89,10 +90,8 @@ public: | ||||||
|        elevationButtonsChanged_ {false}, |        elevationButtonsChanged_ {false}, | ||||||
|        resizeElevationButtons_ {false} |        resizeElevationButtons_ {false} | ||||||
|    { |    { | ||||||
|       mapProvider_ = |       mapProvider_ = map::GetMapProvider( | ||||||
|          map::GetMapProvider(manager::SettingsManager::general_settings() |          settings::GeneralSettings::Instance().map_provider().GetValue()); | ||||||
|                                 .map_provider() |  | ||||||
|                                 .GetValue()); |  | ||||||
|       const map::MapProviderInfo& mapProviderInfo = |       const map::MapProviderInfo& mapProviderInfo = | ||||||
|          map::GetMapProviderInfo(mapProvider_); |          map::GetMapProviderInfo(mapProvider_); | ||||||
| 
 | 
 | ||||||
|  | @ -230,7 +229,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().GetValue()); |       settings::GeneralSettings::Instance().debug_enabled().GetValue()); | ||||||
| 
 | 
 | ||||||
|    // Configure Resource Explorer Dock
 |    // Configure Resource Explorer Dock
 | ||||||
|    ui->resourceExplorerDock->setVisible(false); |    ui->resourceExplorerDock->setVisible(false); | ||||||
|  | @ -306,7 +305,7 @@ MainWindow::MainWindow(QWidget* parent) : | ||||||
|    // Update Dialog
 |    // Update Dialog
 | ||||||
|    p->updateDialog_ = new ui::UpdateDialog(this); |    p->updateDialog_ = new ui::UpdateDialog(this); | ||||||
| 
 | 
 | ||||||
|    auto& mapSettings = manager::SettingsManager::map_settings(); |    auto& mapSettings = settings::MapSettings::Instance(); | ||||||
|    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), | ||||||
|  | @ -582,7 +581,7 @@ void MainWindow::on_resourceTreeView_doubleClicked(const QModelIndex& index) | ||||||
| 
 | 
 | ||||||
| void MainWindowImpl::AsyncSetup() | void MainWindowImpl::AsyncSetup() | ||||||
| { | { | ||||||
|    auto& generalSettings = manager::SettingsManager::general_settings(); |    auto& generalSettings = settings::GeneralSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    // Check for updates
 |    // Check for updates
 | ||||||
|    if (generalSettings.update_notifications_enabled().GetValue()) |    if (generalSettings.update_notifications_enabled().GetValue()) | ||||||
|  | @ -595,7 +594,7 @@ void MainWindowImpl::AsyncSetup() | ||||||
| 
 | 
 | ||||||
| void MainWindowImpl::ConfigureMapLayout() | void MainWindowImpl::ConfigureMapLayout() | ||||||
| { | { | ||||||
|    auto& generalSettings = manager::SettingsManager::general_settings(); |    auto& generalSettings = settings::GeneralSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    const int64_t gridWidth  = generalSettings.grid_width().GetValue(); |    const int64_t gridWidth  = generalSettings.grid_width().GetValue(); | ||||||
|    const int64_t gridHeight = generalSettings.grid_height().GetValue(); |    const int64_t gridHeight = generalSettings.grid_height().GetValue(); | ||||||
|  | @ -646,7 +645,7 @@ void MainWindowImpl::ConfigureMapLayout() | ||||||
| void MainWindowImpl::ConfigureMapStyles() | void MainWindowImpl::ConfigureMapStyles() | ||||||
| { | { | ||||||
|    const auto& mapProviderInfo = map::GetMapProviderInfo(mapProvider_); |    const auto& mapProviderInfo = map::GetMapProviderInfo(mapProvider_); | ||||||
|    auto&       mapSettings     = manager::SettingsManager::map_settings(); |    auto&       mapSettings     = settings::MapSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    for (std::size_t i = 0; i < maps_.size(); i++) |    for (std::size_t i = 0; i < maps_.size(); i++) | ||||||
|    { |    { | ||||||
|  | @ -897,8 +896,7 @@ void MainWindowImpl::ConnectOtherSignals() | ||||||
|               { |               { | ||||||
|                  if (maps_[i] == activeMap_) |                  if (maps_[i] == activeMap_) | ||||||
|                  { |                  { | ||||||
|                     auto& mapSettings = |                     auto& mapSettings = settings::MapSettings::Instance(); | ||||||
|                        manager::SettingsManager::map_settings(); |  | ||||||
|                     mapSettings.map_style(i).StageValue(text.toStdString()); |                     mapSettings.map_style(i).StageValue(text.toStdString()); | ||||||
|                     break; |                     break; | ||||||
|                  } |                  } | ||||||
|  | @ -1075,7 +1073,7 @@ void MainWindowImpl::UpdateMapStyle(const std::string& styleName) | ||||||
|       { |       { | ||||||
|          if (maps_[i] == activeMap_) |          if (maps_[i] == activeMap_) | ||||||
|          { |          { | ||||||
|             auto& mapSettings = manager::SettingsManager::map_settings(); |             auto& mapSettings = settings::MapSettings::Instance(); | ||||||
|             mapSettings.map_style(i).StageValue(styleName); |             mapSettings.map_style(i).StageValue(styleName); | ||||||
|             break; |             break; | ||||||
|          } |          } | ||||||
|  |  | ||||||
|  | @ -1,5 +1,8 @@ | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/manager/settings_manager.hpp> | ||||||
| #include <scwx/qt/map/map_provider.hpp> | #include <scwx/qt/map/map_provider.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/map_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/palette_settings.hpp> | ||||||
| #include <scwx/qt/settings/text_settings.hpp> | #include <scwx/qt/settings/text_settings.hpp> | ||||||
| #include <scwx/qt/settings/ui_settings.hpp> | #include <scwx/qt/settings/ui_settings.hpp> | ||||||
| #include <scwx/qt/util/json.hpp> | #include <scwx/qt/util/json.hpp> | ||||||
|  | @ -96,8 +99,8 @@ void Shutdown() | ||||||
| { | { | ||||||
|    bool dataChanged = false; |    bool dataChanged = false; | ||||||
| 
 | 
 | ||||||
|    dataChanged |= general_settings().Shutdown(); |    dataChanged |= settings::GeneralSettings::Instance().Shutdown(); | ||||||
|    dataChanged |= map_settings().Shutdown(); |    dataChanged |= settings::MapSettings::Instance().Shutdown(); | ||||||
|    dataChanged |= settings::UiSettings::Instance().Shutdown(); |    dataChanged |= settings::UiSettings::Instance().Shutdown(); | ||||||
| 
 | 
 | ||||||
|    if (dataChanged) |    if (dataChanged) | ||||||
|  | @ -106,31 +109,13 @@ void Shutdown() | ||||||
|    } |    } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| settings::GeneralSettings& general_settings() |  | ||||||
| { |  | ||||||
|    static settings::GeneralSettings generalSettings_; |  | ||||||
|    return generalSettings_; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| settings::MapSettings& map_settings() |  | ||||||
| { |  | ||||||
|    static settings::MapSettings mapSettings_; |  | ||||||
|    return mapSettings_; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| settings::PaletteSettings& palette_settings() |  | ||||||
| { |  | ||||||
|    static settings::PaletteSettings paletteSettings_; |  | ||||||
|    return paletteSettings_; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static boost::json::value ConvertSettingsToJson() | static boost::json::value ConvertSettingsToJson() | ||||||
| { | { | ||||||
|    boost::json::object settingsJson; |    boost::json::object settingsJson; | ||||||
| 
 | 
 | ||||||
|    general_settings().WriteJson(settingsJson); |    settings::GeneralSettings::Instance().WriteJson(settingsJson); | ||||||
|    map_settings().WriteJson(settingsJson); |    settings::MapSettings::Instance().WriteJson(settingsJson); | ||||||
|    palette_settings().WriteJson(settingsJson); |    settings::PaletteSettings::Instance().WriteJson(settingsJson); | ||||||
|    settings::TextSettings::Instance().WriteJson(settingsJson); |    settings::TextSettings::Instance().WriteJson(settingsJson); | ||||||
|    settings::UiSettings::Instance().WriteJson(settingsJson); |    settings::UiSettings::Instance().WriteJson(settingsJson); | ||||||
| 
 | 
 | ||||||
|  | @ -141,9 +126,9 @@ static void GenerateDefaultSettings() | ||||||
| { | { | ||||||
|    logger_->info("Generating default settings"); |    logger_->info("Generating default settings"); | ||||||
| 
 | 
 | ||||||
|    general_settings().SetDefaults(); |    settings::GeneralSettings::Instance().SetDefaults(); | ||||||
|    map_settings().SetDefaults(); |    settings::MapSettings::Instance().SetDefaults(); | ||||||
|    palette_settings().SetDefaults(); |    settings::PaletteSettings::Instance().SetDefaults(); | ||||||
|    settings::TextSettings::Instance().SetDefaults(); |    settings::TextSettings::Instance().SetDefaults(); | ||||||
|    settings::UiSettings::Instance().SetDefaults(); |    settings::UiSettings::Instance().SetDefaults(); | ||||||
| } | } | ||||||
|  | @ -154,9 +139,9 @@ static bool LoadSettings(const boost::json::object& settingsJson) | ||||||
| 
 | 
 | ||||||
|    bool jsonDirty = false; |    bool jsonDirty = false; | ||||||
| 
 | 
 | ||||||
|    jsonDirty |= !general_settings().ReadJson(settingsJson); |    jsonDirty |= !settings::GeneralSettings::Instance().ReadJson(settingsJson); | ||||||
|    jsonDirty |= !map_settings().ReadJson(settingsJson); |    jsonDirty |= !settings::MapSettings::Instance().ReadJson(settingsJson); | ||||||
|    jsonDirty |= !palette_settings().ReadJson(settingsJson); |    jsonDirty |= !settings::PaletteSettings::Instance().ReadJson(settingsJson); | ||||||
|    jsonDirty |= !settings::TextSettings::Instance().ReadJson(settingsJson); |    jsonDirty |= !settings::TextSettings::Instance().ReadJson(settingsJson); | ||||||
|    jsonDirty |= !settings::UiSettings::Instance().ReadJson(settingsJson); |    jsonDirty |= !settings::UiSettings::Instance().ReadJson(settingsJson); | ||||||
| 
 | 
 | ||||||
|  | @ -169,7 +154,7 @@ static void ValidateSettings() | ||||||
| 
 | 
 | ||||||
|    bool settingsChanged = false; |    bool settingsChanged = false; | ||||||
| 
 | 
 | ||||||
|    auto& generalSettings = general_settings(); |    auto& generalSettings = settings::GeneralSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    // Validate map provider
 |    // Validate map provider
 | ||||||
|    std::string mapProviderName = generalSettings.map_provider().GetValue(); |    std::string mapProviderName = generalSettings.map_provider().GetValue(); | ||||||
|  |  | ||||||
|  | @ -1,8 +1,6 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <scwx/qt/settings/general_settings.hpp> | #include <string> | ||||||
| #include <scwx/qt/settings/map_settings.hpp> |  | ||||||
| #include <scwx/qt/settings/palette_settings.hpp> |  | ||||||
| 
 | 
 | ||||||
| namespace scwx | namespace scwx | ||||||
| { | { | ||||||
|  | @ -18,10 +16,6 @@ void ReadSettings(const std::string& settingsPath); | ||||||
| void SaveSettings(); | void SaveSettings(); | ||||||
| void Shutdown(); | void Shutdown(); | ||||||
| 
 | 
 | ||||||
| settings::GeneralSettings& general_settings(); |  | ||||||
| settings::MapSettings&     map_settings(); |  | ||||||
| settings::PaletteSettings& palette_settings(); |  | ||||||
| 
 |  | ||||||
| } // namespace SettingsManager
 | } // namespace SettingsManager
 | ||||||
| } // namespace manager
 | } // namespace manager
 | ||||||
| } // namespace qt
 | } // namespace qt
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <scwx/qt/manager/timeline_manager.hpp> | #include <scwx/qt/manager/timeline_manager.hpp> | ||||||
| #include <scwx/qt/manager/radar_product_manager.hpp> | #include <scwx/qt/manager/radar_product_manager.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
| #include <scwx/util/map.hpp> | #include <scwx/util/map.hpp> | ||||||
| #include <scwx/util/time.hpp> | #include <scwx/util/time.hpp> | ||||||
|  | @ -39,7 +39,7 @@ class TimelineManager::Impl | ||||||
| public: | public: | ||||||
|    explicit Impl(TimelineManager* self) : self_ {self} |    explicit Impl(TimelineManager* self) : self_ {self} | ||||||
|    { |    { | ||||||
|       auto& generalSettings = SettingsManager::general_settings(); |       auto& generalSettings = settings::GeneralSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|       loopDelay_ = |       loopDelay_ = | ||||||
|          std::chrono::milliseconds(generalSettings.loop_delay().GetValue()); |          std::chrono::milliseconds(generalSettings.loop_delay().GetValue()); | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| #include <scwx/qt/map/alert_layer.hpp> | #include <scwx/qt/map/alert_layer.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> |  | ||||||
| #include <scwx/qt/manager/text_event_manager.hpp> | #include <scwx/qt/manager/text_event_manager.hpp> | ||||||
|  | #include <scwx/qt/settings/palette_settings.hpp> | ||||||
| #include <scwx/qt/util/color.hpp> | #include <scwx/qt/util/color.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
| #include <scwx/util/threads.hpp> | #include <scwx/util/threads.hpp> | ||||||
|  | @ -394,7 +394,7 @@ static void AddAlertLayer(std::shared_ptr<QMapLibreGL::Map> map, | ||||||
|                           const QString&                    beforeLayer) |                           const QString&                    beforeLayer) | ||||||
| { | { | ||||||
|    settings::PaletteSettings& paletteSettings = |    settings::PaletteSettings& paletteSettings = | ||||||
|       manager::SettingsManager::palette_settings(); |       settings::PaletteSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    QString sourceId     = GetSourceId(phenomenon, alertActive); |    QString sourceId     = GetSourceId(phenomenon, alertActive); | ||||||
|    QString idSuffix     = GetSuffix(phenomenon, alertActive); |    QString idSuffix     = GetSuffix(phenomenon, alertActive); | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| #include <scwx/qt/map/map_provider.hpp> | #include <scwx/qt/map/map_provider.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| 
 | 
 | ||||||
| #include <unordered_map> | #include <unordered_map> | ||||||
| 
 | 
 | ||||||
|  | @ -128,12 +128,10 @@ std::string GetMapProviderApiKey(MapProvider mapProvider) | ||||||
|    switch (mapProvider) |    switch (mapProvider) | ||||||
|    { |    { | ||||||
|    case MapProvider::Mapbox: |    case MapProvider::Mapbox: | ||||||
|       return manager::SettingsManager::general_settings() |       return settings::GeneralSettings::Instance().mapbox_api_key().GetValue(); | ||||||
|          .mapbox_api_key() |  | ||||||
|          .GetValue(); |  | ||||||
| 
 | 
 | ||||||
|    case MapProvider::MapTiler: |    case MapProvider::MapTiler: | ||||||
|       return manager::SettingsManager::general_settings() |       return settings::GeneralSettings::Instance() | ||||||
|          .maptiler_api_key() |          .maptiler_api_key() | ||||||
|          .GetValue(); |          .GetValue(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
| #include <scwx/qt/manager/font_manager.hpp> | #include <scwx/qt/manager/font_manager.hpp> | ||||||
| #include <scwx/qt/manager/placefile_manager.hpp> | #include <scwx/qt/manager/placefile_manager.hpp> | ||||||
| #include <scwx/qt/manager/radar_product_manager.hpp> | #include <scwx/qt/manager/radar_product_manager.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> |  | ||||||
| #include <scwx/qt/map/alert_layer.hpp> | #include <scwx/qt/map/alert_layer.hpp> | ||||||
| #include <scwx/qt/map/color_table_layer.hpp> | #include <scwx/qt/map/color_table_layer.hpp> | ||||||
| #include <scwx/qt/map/layer_wrapper.hpp> | #include <scwx/qt/map/layer_wrapper.hpp> | ||||||
|  | @ -13,6 +12,8 @@ | ||||||
| #include <scwx/qt/map/radar_product_layer.hpp> | #include <scwx/qt/map/radar_product_layer.hpp> | ||||||
| #include <scwx/qt/map/radar_range_layer.hpp> | #include <scwx/qt/map/radar_range_layer.hpp> | ||||||
| #include <scwx/qt/model/imgui_context_model.hpp> | #include <scwx/qt/model/imgui_context_model.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/palette_settings.hpp> | ||||||
| #include <scwx/qt/util/file.hpp> | #include <scwx/qt/util/file.hpp> | ||||||
| #include <scwx/qt/util/maplibre.hpp> | #include <scwx/qt/util/maplibre.hpp> | ||||||
| #include <scwx/qt/util/tooltip.hpp> | #include <scwx/qt/util/tooltip.hpp> | ||||||
|  | @ -81,8 +82,7 @@ public: | ||||||
|        prevBearing_ {0.0}, |        prevBearing_ {0.0}, | ||||||
|        prevPitch_ {0.0} |        prevPitch_ {0.0} | ||||||
|    { |    { | ||||||
|       auto& generalSettings = |       auto& generalSettings = settings::GeneralSettings::Instance(); | ||||||
|          scwx::qt::manager::SettingsManager::general_settings(); |  | ||||||
| 
 | 
 | ||||||
|       SetRadarSite(generalSettings.default_radar_site().GetValue()); |       SetRadarSite(generalSettings.default_radar_site().GetValue()); | ||||||
| 
 | 
 | ||||||
|  | @ -1227,7 +1227,7 @@ 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() |                            settings::PaletteSettings::Instance() | ||||||
|                               .palette(colorPalette) |                               .palette(colorPalette) | ||||||
|                               .GetValue(); |                               .GetValue(); | ||||||
|                         if (!colorTableFile.empty()) |                         if (!colorTableFile.empty()) | ||||||
|  |  | ||||||
|  | @ -16,10 +16,10 @@ namespace settings | ||||||
| 
 | 
 | ||||||
| static const std::string logPrefix_ = "scwx::qt::settings::general_settings"; | static const std::string logPrefix_ = "scwx::qt::settings::general_settings"; | ||||||
| 
 | 
 | ||||||
| class GeneralSettingsImpl | class GeneralSettings::Impl | ||||||
| { | { | ||||||
| public: | public: | ||||||
|    explicit GeneralSettingsImpl() |    explicit Impl() | ||||||
|    { |    { | ||||||
|       std::string defaultDefaultAlertActionValue = |       std::string defaultDefaultAlertActionValue = | ||||||
|          types::GetAlertActionName(types::AlertAction::Go); |          types::GetAlertActionName(types::AlertAction::Go); | ||||||
|  | @ -102,7 +102,7 @@ public: | ||||||
|                                    { return !value.empty(); }); |                                    { return !value.empty(); }); | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    ~GeneralSettingsImpl() {} |    ~Impl() {} | ||||||
| 
 | 
 | ||||||
|    SettingsVariable<bool>        debugEnabled_ {"debug_enabled"}; |    SettingsVariable<bool>        debugEnabled_ {"debug_enabled"}; | ||||||
|    SettingsVariable<std::string> defaultAlertAction_ {"default_alert_action"}; |    SettingsVariable<std::string> defaultAlertAction_ {"default_alert_action"}; | ||||||
|  | @ -120,7 +120,7 @@ public: | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| GeneralSettings::GeneralSettings() : | GeneralSettings::GeneralSettings() : | ||||||
|     SettingsCategory("general"), p(std::make_unique<GeneralSettingsImpl>()) |     SettingsCategory("general"), p(std::make_unique<Impl>()) | ||||||
| { | { | ||||||
|    RegisterVariables({&p->debugEnabled_, |    RegisterVariables({&p->debugEnabled_, | ||||||
|                       &p->defaultAlertAction_, |                       &p->defaultAlertAction_, | ||||||
|  | @ -221,6 +221,12 @@ bool GeneralSettings::Shutdown() | ||||||
|    return dataChanged; |    return dataChanged; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | GeneralSettings& GeneralSettings::Instance() | ||||||
|  | { | ||||||
|  |    static GeneralSettings generalSettings_; | ||||||
|  |    return generalSettings_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs) | bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs) | ||||||
| { | { | ||||||
|    return (lhs.p->debugEnabled_ == rhs.p->debugEnabled_ && |    return (lhs.p->debugEnabled_ == rhs.p->debugEnabled_ && | ||||||
|  |  | ||||||
|  | @ -13,8 +13,6 @@ namespace qt | ||||||
| namespace settings | namespace settings | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| class GeneralSettingsImpl; |  | ||||||
| 
 |  | ||||||
| class GeneralSettings : public SettingsCategory | class GeneralSettings : public SettingsCategory | ||||||
| { | { | ||||||
| public: | public: | ||||||
|  | @ -41,13 +39,16 @@ public: | ||||||
|    SettingsVariable<std::string>&                maptiler_api_key() const; |    SettingsVariable<std::string>&                maptiler_api_key() const; | ||||||
|    SettingsVariable<bool>& update_notifications_enabled() const; |    SettingsVariable<bool>& update_notifications_enabled() const; | ||||||
| 
 | 
 | ||||||
|  |    static GeneralSettings& Instance(); | ||||||
|  | 
 | ||||||
|    friend bool operator==(const GeneralSettings& lhs, |    friend bool operator==(const GeneralSettings& lhs, | ||||||
|                           const GeneralSettings& rhs); |                           const GeneralSettings& rhs); | ||||||
| 
 | 
 | ||||||
|    bool Shutdown(); |    bool Shutdown(); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|    std::unique_ptr<GeneralSettingsImpl> p; |    class Impl; | ||||||
|  |    std::unique_ptr<Impl> p; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace settings
 | } // namespace settings
 | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ static const std::string kDefaultRadarProductGroupString_ = "L3"; | ||||||
| static const std::array<std::string, kCount_> kDefaultRadarProduct_ { | static const std::array<std::string, kCount_> kDefaultRadarProduct_ { | ||||||
|    "N0B", "N0G", "N0C", "N0X"}; |    "N0B", "N0G", "N0C", "N0X"}; | ||||||
| 
 | 
 | ||||||
| class MapSettingsImpl | class MapSettings::Impl | ||||||
| { | { | ||||||
| public: | public: | ||||||
|    struct MapData |    struct MapData | ||||||
|  | @ -47,7 +47,7 @@ public: | ||||||
|       SettingsVariable<std::string> radarProduct_ {kRadarProductName_}; |       SettingsVariable<std::string> radarProduct_ {kRadarProductName_}; | ||||||
|    }; |    }; | ||||||
| 
 | 
 | ||||||
|    explicit MapSettingsImpl() |    explicit Impl() | ||||||
|    { |    { | ||||||
|       for (std::size_t i = 0; i < kCount_; i++) |       for (std::size_t i = 0; i < kCount_; i++) | ||||||
|       { |       { | ||||||
|  | @ -101,7 +101,7 @@ public: | ||||||
|       } |       } | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    ~MapSettingsImpl() {} |    ~Impl() {} | ||||||
| 
 | 
 | ||||||
|    void SetDefaults(std::size_t i) |    void SetDefaults(std::size_t i) | ||||||
|    { |    { | ||||||
|  | @ -111,12 +111,30 @@ public: | ||||||
|       map_[i].radarProduct_.SetValueToDefault(); |       map_[i].radarProduct_.SetValueToDefault(); | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|  |    friend void tag_invoke(boost::json::value_from_tag, | ||||||
|  |                           boost::json::value& jv, | ||||||
|  |                           const MapData&      data) | ||||||
|  |    { | ||||||
|  |       jv = {{kMapStyleName_, data.mapStyle_.GetValue()}, | ||||||
|  |             {kRadarSiteName_, data.radarSite_.GetValue()}, | ||||||
|  |             {kRadarProductGroupName_, data.radarProductGroup_.GetValue()}, | ||||||
|  |             {kRadarProductName_, data.radarProduct_.GetValue()}}; | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|  |    friend bool operator==(const MapData& lhs, const MapData& rhs) | ||||||
|  |    { | ||||||
|  |       return (lhs.mapStyle_ == rhs.mapStyle_ && //
 | ||||||
|  |               lhs.radarSite_ == rhs.radarSite_ && | ||||||
|  |               lhs.radarProductGroup_ == rhs.radarProductGroup_ && | ||||||
|  |               lhs.radarProduct_ == rhs.radarProduct_); | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|    std::array<MapData, kCount_>       map_ {}; |    std::array<MapData, kCount_>       map_ {}; | ||||||
|    std::vector<SettingsVariableBase*> variables_ {}; |    std::vector<SettingsVariableBase*> variables_ {}; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| MapSettings::MapSettings() : | MapSettings::MapSettings() : | ||||||
|     SettingsCategory("maps"), p(std::make_unique<MapSettingsImpl>()) |     SettingsCategory("maps"), p(std::make_unique<Impl>()) | ||||||
| { | { | ||||||
|    RegisterVariables(p->variables_); |    RegisterVariables(p->variables_); | ||||||
|    SetDefaults(); |    SetDefaults(); | ||||||
|  | @ -161,7 +179,7 @@ bool MapSettings::Shutdown() | ||||||
|    // Commit settings that are managed separate from the settings dialog
 |    // Commit settings that are managed separate from the settings dialog
 | ||||||
|    for (std::size_t i = 0; i < kCount_; ++i) |    for (std::size_t i = 0; i < kCount_; ++i) | ||||||
|    { |    { | ||||||
|       MapSettingsImpl::MapData& mapRecordSettings = p->map_[i]; |       Impl::MapData& mapRecordSettings = p->map_[i]; | ||||||
| 
 | 
 | ||||||
|       dataChanged |= mapRecordSettings.mapStyle_.Commit(); |       dataChanged |= mapRecordSettings.mapStyle_.Commit(); | ||||||
|    } |    } | ||||||
|  | @ -184,7 +202,7 @@ bool MapSettings::ReadJson(const boost::json::object& json) | ||||||
|          if (i < mapArray.size() && mapArray.at(i).is_object()) |          if (i < mapArray.size() && mapArray.at(i).is_object()) | ||||||
|          { |          { | ||||||
|             const boost::json::object& mapRecord = mapArray.at(i).as_object(); |             const boost::json::object& mapRecord = mapArray.at(i).as_object(); | ||||||
|             MapSettingsImpl::MapData&  mapRecordSettings = p->map_[i]; |             Impl::MapData&             mapRecordSettings = p->map_[i]; | ||||||
| 
 | 
 | ||||||
|             // Load JSON Elements
 |             // Load JSON Elements
 | ||||||
|             validated &= mapRecordSettings.mapStyle_.ReadValue(mapRecord); |             validated &= mapRecordSettings.mapStyle_.ReadValue(mapRecord); | ||||||
|  | @ -234,14 +252,10 @@ void MapSettings::WriteJson(boost::json::object& json) const | ||||||
|    json.insert_or_assign(name(), object); |    json.insert_or_assign(name(), object); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void tag_invoke(boost::json::value_from_tag, | MapSettings& MapSettings::Instance() | ||||||
|                 boost::json::value&             jv, |  | ||||||
|                 const MapSettingsImpl::MapData& data) |  | ||||||
| { | { | ||||||
|    jv = {{kMapStyleName_, data.mapStyle_.GetValue()}, |    static MapSettings mapSettings_; | ||||||
|          {kRadarSiteName_, data.radarSite_.GetValue()}, |    return mapSettings_; | ||||||
|          {kRadarProductGroupName_, data.radarProductGroup_.GetValue()}, |  | ||||||
|          {kRadarProductName_, data.radarProduct_.GetValue()}}; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool operator==(const MapSettings& lhs, const MapSettings& rhs) | bool operator==(const MapSettings& lhs, const MapSettings& rhs) | ||||||
|  | @ -249,15 +263,6 @@ bool operator==(const MapSettings& lhs, const MapSettings& rhs) | ||||||
|    return (lhs.p->map_ == rhs.p->map_); |    return (lhs.p->map_ == rhs.p->map_); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool operator==(const MapSettingsImpl::MapData& lhs, |  | ||||||
|                 const MapSettingsImpl::MapData& rhs) |  | ||||||
| { |  | ||||||
|    return (lhs.mapStyle_ == rhs.mapStyle_ && //
 |  | ||||||
|            lhs.radarSite_ == rhs.radarSite_ && |  | ||||||
|            lhs.radarProductGroup_ == rhs.radarProductGroup_ && |  | ||||||
|            lhs.radarProduct_ == rhs.radarProduct_); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } // namespace settings
 | } // namespace settings
 | ||||||
| } // namespace qt
 | } // namespace qt
 | ||||||
| } // namespace scwx
 | } // namespace scwx
 | ||||||
|  |  | ||||||
|  | @ -13,8 +13,6 @@ namespace qt | ||||||
| namespace settings | namespace settings | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| class MapSettingsImpl; |  | ||||||
| 
 |  | ||||||
| class MapSettings : public SettingsCategory | class MapSettings : public SettingsCategory | ||||||
| { | { | ||||||
| public: | public: | ||||||
|  | @ -52,10 +50,13 @@ public: | ||||||
|     */ |     */ | ||||||
|    void WriteJson(boost::json::object& json) const override; |    void WriteJson(boost::json::object& json) const override; | ||||||
| 
 | 
 | ||||||
|  |    static MapSettings& Instance(); | ||||||
|  | 
 | ||||||
|    friend bool operator==(const MapSettings& lhs, const MapSettings& rhs); |    friend bool operator==(const MapSettings& lhs, const MapSettings& rhs); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|    std::unique_ptr<MapSettingsImpl> p; |    class Impl; | ||||||
|  |    std::unique_ptr<Impl> p; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace settings
 | } // namespace settings
 | ||||||
|  |  | ||||||
|  | @ -72,10 +72,10 @@ static const std::map< | ||||||
| static const std::string       kDefaultKey_ {"???"}; | static const std::string       kDefaultKey_ {"???"}; | ||||||
| static const awips::Phenomenon kDefaultPhenomenon_ {awips::Phenomenon::Marine}; | static const awips::Phenomenon kDefaultPhenomenon_ {awips::Phenomenon::Marine}; | ||||||
| 
 | 
 | ||||||
| class PaletteSettingsImpl | class PaletteSettings::Impl | ||||||
| { | { | ||||||
| public: | public: | ||||||
|    explicit PaletteSettingsImpl() |    explicit Impl() | ||||||
|    { |    { | ||||||
|       for (const auto& name : kPaletteKeys_) |       for (const auto& name : kPaletteKeys_) | ||||||
|       { |       { | ||||||
|  | @ -120,7 +120,7 @@ public: | ||||||
|       } |       } | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    ~PaletteSettingsImpl() {} |    ~Impl() {} | ||||||
| 
 | 
 | ||||||
|    static bool ValidateColor(const std::string& value); |    static bool ValidateColor(const std::string& value); | ||||||
| 
 | 
 | ||||||
|  | @ -132,14 +132,14 @@ public: | ||||||
|    std::vector<SettingsVariableBase*> variables_ {}; |    std::vector<SettingsVariableBase*> variables_ {}; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| bool PaletteSettingsImpl::ValidateColor(const std::string& value) | bool PaletteSettings::Impl::ValidateColor(const std::string& value) | ||||||
| { | { | ||||||
|    static const std::regex re {"#[0-9A-Za-z]{8}"}; |    static const std::regex re {"#[0-9A-Za-z]{8}"}; | ||||||
|    return std::regex_match(value, re); |    return std::regex_match(value, re); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| PaletteSettings::PaletteSettings() : | PaletteSettings::PaletteSettings() : | ||||||
|     SettingsCategory("palette"), p(std::make_unique<PaletteSettingsImpl>()) |     SettingsCategory("palette"), p(std::make_unique<Impl>()) | ||||||
| { | { | ||||||
|    RegisterVariables(p->variables_); |    RegisterVariables(p->variables_); | ||||||
|    SetDefaults(); |    SetDefaults(); | ||||||
|  | @ -200,6 +200,12 @@ const std::vector<awips::Phenomenon>& PaletteSettings::alert_phenomena() | ||||||
|    return kAlertPhenomena_; |    return kAlertPhenomena_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | PaletteSettings& PaletteSettings::Instance() | ||||||
|  | { | ||||||
|  |    static PaletteSettings paletteSettings_; | ||||||
|  |    return paletteSettings_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs) | bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs) | ||||||
| { | { | ||||||
|    return lhs.p->palette_ == rhs.p->palette_; |    return lhs.p->palette_ == rhs.p->palette_; | ||||||
|  |  | ||||||
|  | @ -14,8 +14,6 @@ namespace qt | ||||||
| namespace settings | namespace settings | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| class PaletteSettingsImpl; |  | ||||||
| 
 |  | ||||||
| class PaletteSettings : public SettingsCategory | class PaletteSettings : public SettingsCategory | ||||||
| { | { | ||||||
| public: | public: | ||||||
|  | @ -34,11 +32,14 @@ public: | ||||||
| 
 | 
 | ||||||
|    static const std::vector<awips::Phenomenon>& alert_phenomena(); |    static const std::vector<awips::Phenomenon>& alert_phenomena(); | ||||||
| 
 | 
 | ||||||
|  |    static PaletteSettings& Instance(); | ||||||
|  | 
 | ||||||
|    friend bool operator==(const PaletteSettings& lhs, |    friend bool operator==(const PaletteSettings& lhs, | ||||||
|                           const PaletteSettings& rhs); |                           const PaletteSettings& rhs); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|    std::unique_ptr<PaletteSettingsImpl> p; |    class Impl; | ||||||
|  |    std::unique_ptr<Impl> p; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace settings
 | } // namespace settings
 | ||||||
|  |  | ||||||
|  | @ -169,8 +169,8 @@ SettingsVariable<std::string>& TextSettings::tooltip_method() const | ||||||
| 
 | 
 | ||||||
| TextSettings& TextSettings::Instance() | TextSettings& TextSettings::Instance() | ||||||
| { | { | ||||||
|    static TextSettings TextSettings_; |    static TextSettings textSettings_; | ||||||
|    return TextSettings_; |    return textSettings_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool operator==(const TextSettings& lhs, const TextSettings& rhs) | bool operator==(const TextSettings& lhs, const TextSettings& rhs) | ||||||
|  |  | ||||||
|  | @ -1,10 +1,10 @@ | ||||||
| #include "alert_dock_widget.hpp" | #include "alert_dock_widget.hpp" | ||||||
| #include "ui_alert_dock_widget.h" | #include "ui_alert_dock_widget.h" | ||||||
| 
 | 
 | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> |  | ||||||
| #include <scwx/qt/manager/text_event_manager.hpp> | #include <scwx/qt/manager/text_event_manager.hpp> | ||||||
| #include <scwx/qt/model/alert_model.hpp> | #include <scwx/qt/model/alert_model.hpp> | ||||||
| #include <scwx/qt/model/alert_proxy_model.hpp> | #include <scwx/qt/model/alert_proxy_model.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/qt/types/alert_types.hpp> | #include <scwx/qt/types/alert_types.hpp> | ||||||
| #include <scwx/qt/types/qt_types.hpp> | #include <scwx/qt/types/qt_types.hpp> | ||||||
| #include <scwx/qt/ui/alert_dialog.hpp> | #include <scwx/qt/ui/alert_dialog.hpp> | ||||||
|  | @ -175,8 +175,8 @@ void AlertDockWidgetImpl::ConnectSignals() | ||||||
|               // If an item is selected
 |               // If an item is selected
 | ||||||
|               if (selectedAlertKey_ != types::TextEventKey {}) |               if (selectedAlertKey_ != types::TextEventKey {}) | ||||||
|               { |               { | ||||||
|                  types::AlertAction alertAction = types::GetAlertAction( |                  types::AlertAction alertAction = | ||||||
|                     manager::SettingsManager::general_settings() |                     types::GetAlertAction(settings::GeneralSettings::Instance() | ||||||
|                                              .default_alert_action() |                                              .default_alert_action() | ||||||
|                                              .GetValue()); |                                              .GetValue()); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| #include "animation_dock_widget.hpp" | #include "animation_dock_widget.hpp" | ||||||
| #include "ui_animation_dock_widget.h" | #include "ui_animation_dock_widget.h" | ||||||
| 
 | 
 | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/qt/util/time.hpp> | #include <scwx/qt/util/time.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
| 
 | 
 | ||||||
|  | @ -101,7 +101,7 @@ AnimationDockWidget::AnimationDockWidget(QWidget* parent) : | ||||||
|    maxDateTimer->start(15000); |    maxDateTimer->start(15000); | ||||||
| 
 | 
 | ||||||
|    // Set loop defaults
 |    // Set loop defaults
 | ||||||
|    auto& generalSettings = manager::SettingsManager::general_settings(); |    auto& generalSettings = settings::GeneralSettings::Instance(); | ||||||
|    ui->loopTimeSpinBox->setValue(generalSettings.loop_time().GetValue()); |    ui->loopTimeSpinBox->setValue(generalSettings.loop_time().GetValue()); | ||||||
|    ui->loopSpeedSpinBox->setValue(generalSettings.loop_speed().GetValue()); |    ui->loopSpeedSpinBox->setValue(generalSettings.loop_speed().GetValue()); | ||||||
|    ui->loopDelaySpinBox->setValue(generalSettings.loop_delay().GetValue() * |    ui->loopDelaySpinBox->setValue(generalSettings.loop_delay().GetValue() * | ||||||
|  | @ -175,7 +175,7 @@ void AnimationDockWidgetImpl::ConnectSignals() | ||||||
|       self_, |       self_, | ||||||
|       [this](int i) |       [this](int i) | ||||||
|       { |       { | ||||||
|          manager::SettingsManager::general_settings().loop_time().StageValue(i); |          settings::GeneralSettings::Instance().loop_time().StageValue(i); | ||||||
|          Q_EMIT self_->LoopTimeChanged(std::chrono::minutes(i)); |          Q_EMIT self_->LoopTimeChanged(std::chrono::minutes(i)); | ||||||
|       }); |       }); | ||||||
|    QObject::connect( |    QObject::connect( | ||||||
|  | @ -184,8 +184,7 @@ void AnimationDockWidgetImpl::ConnectSignals() | ||||||
|       self_, |       self_, | ||||||
|       [this](double d) |       [this](double d) | ||||||
|       { |       { | ||||||
|          manager::SettingsManager::general_settings().loop_speed().StageValue( |          settings::GeneralSettings::Instance().loop_speed().StageValue(d); | ||||||
|             d); |  | ||||||
|          Q_EMIT self_->LoopSpeedChanged(d); |          Q_EMIT self_->LoopSpeedChanged(d); | ||||||
|       }); |       }); | ||||||
|    QObject::connect( |    QObject::connect( | ||||||
|  | @ -194,7 +193,7 @@ void AnimationDockWidgetImpl::ConnectSignals() | ||||||
|       self_, |       self_, | ||||||
|       [this](double d) |       [this](double d) | ||||||
|       { |       { | ||||||
|          manager::SettingsManager::general_settings().loop_delay().StageValue( |          settings::GeneralSettings::Instance().loop_delay().StageValue( | ||||||
|             static_cast<std::int64_t>(d * 1000.0)); |             static_cast<std::int64_t>(d * 1000.0)); | ||||||
|          Q_EMIT self_->LoopDelayChanged(std::chrono::milliseconds( |          Q_EMIT self_->LoopDelayChanged(std::chrono::milliseconds( | ||||||
|             static_cast<typename std::chrono::milliseconds::rep>(d * 1000.0))); |             static_cast<typename std::chrono::milliseconds::rep>(d * 1000.0))); | ||||||
|  |  | ||||||
|  | @ -6,6 +6,8 @@ | ||||||
| #include <scwx/qt/config/radar_site.hpp> | #include <scwx/qt/config/radar_site.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/manager/settings_manager.hpp> | ||||||
| #include <scwx/qt/map/map_provider.hpp> | #include <scwx/qt/map/map_provider.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/palette_settings.hpp> | ||||||
| #include <scwx/qt/settings/settings_interface.hpp> | #include <scwx/qt/settings/settings_interface.hpp> | ||||||
| #include <scwx/qt/settings/text_settings.hpp> | #include <scwx/qt/settings/text_settings.hpp> | ||||||
| #include <scwx/qt/types/alert_types.hpp> | #include <scwx/qt/types/alert_types.hpp> | ||||||
|  | @ -104,7 +106,7 @@ public: | ||||||
|           &tooltipMethod_}} |           &tooltipMethod_}} | ||||||
|    { |    { | ||||||
|       // Configure default alert phenomena colors
 |       // Configure default alert phenomena colors
 | ||||||
|       auto& paletteSettings = manager::SettingsManager::palette_settings(); |       auto& paletteSettings = settings::PaletteSettings::Instance(); | ||||||
|       int   index           = 0; |       int   index           = 0; | ||||||
| 
 | 
 | ||||||
|       for (auto& phenomenon : settings::PaletteSettings::alert_phenomena()) |       for (auto& phenomenon : settings::PaletteSettings::alert_phenomena()) | ||||||
|  | @ -384,7 +386,7 @@ void SettingsDialogImpl::SetupGeneralTab() | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    settings::GeneralSettings& generalSettings = |    settings::GeneralSettings& generalSettings = | ||||||
|       manager::SettingsManager::general_settings(); |       settings::GeneralSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    defaultRadarSite_.SetSettingsVariable(generalSettings.default_radar_site()); |    defaultRadarSite_.SetSettingsVariable(generalSettings.default_radar_site()); | ||||||
|    defaultRadarSite_.SetMapFromValueFunction( |    defaultRadarSite_.SetMapFromValueFunction( | ||||||
|  | @ -525,7 +527,7 @@ void SettingsDialogImpl::SetupGeneralTab() | ||||||
| void SettingsDialogImpl::SetupPalettesColorTablesTab() | void SettingsDialogImpl::SetupPalettesColorTablesTab() | ||||||
| { | { | ||||||
|    settings::PaletteSettings& paletteSettings = |    settings::PaletteSettings& paletteSettings = | ||||||
|       manager::SettingsManager::palette_settings(); |       settings::PaletteSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    // Palettes > Color Tables
 |    // Palettes > Color Tables
 | ||||||
|    QGridLayout* colorTableLayout = |    QGridLayout* colorTableLayout = | ||||||
|  | @ -617,7 +619,7 @@ void SettingsDialogImpl::SetupPalettesColorTablesTab() | ||||||
| void SettingsDialogImpl::SetupPalettesAlertsTab() | void SettingsDialogImpl::SetupPalettesAlertsTab() | ||||||
| { | { | ||||||
|    settings::PaletteSettings& paletteSettings = |    settings::PaletteSettings& paletteSettings = | ||||||
|       manager::SettingsManager::palette_settings(); |       settings::PaletteSettings::Instance(); | ||||||
| 
 | 
 | ||||||
|    // Palettes > Alerts
 |    // Palettes > Alerts
 | ||||||
|    QGridLayout* alertsLayout = |    QGridLayout* alertsLayout = | ||||||
|  |  | ||||||
|  | @ -5,8 +5,8 @@ | ||||||
| #define _CRT_SECURE_NO_WARNINGS | #define _CRT_SECURE_NO_WARNINGS | ||||||
| 
 | 
 | ||||||
| #include <scwx/qt/util/font.hpp> | #include <scwx/qt/util/font.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> |  | ||||||
| #include <scwx/qt/model/imgui_context_model.hpp> | #include <scwx/qt/model/imgui_context_model.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
| 
 | 
 | ||||||
| #include <codecvt> | #include <codecvt> | ||||||
|  | @ -337,7 +337,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().GetValue()); |       settings::GeneralSettings::Instance().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( | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| #include <scwx/qt/util/imgui.hpp> | #include <scwx/qt/util/imgui.hpp> | ||||||
| #include <scwx/qt/manager/resource_manager.hpp> | #include <scwx/qt/manager/resource_manager.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
| 
 | 
 | ||||||
| #include <mutex> | #include <mutex> | ||||||
|  | @ -48,7 +48,7 @@ void ImGui::Impl::Initialize() | ||||||
| 
 | 
 | ||||||
|    // Configure monospace font
 |    // Configure monospace font
 | ||||||
|    UpdateMonospaceFont(); |    UpdateMonospaceFont(); | ||||||
|    manager::SettingsManager::general_settings() |    settings::GeneralSettings::Instance() | ||||||
|       .font_sizes() |       .font_sizes() | ||||||
|       .RegisterValueChangedCallback([this](const std::vector<std::int64_t>&) |       .RegisterValueChangedCallback([this](const std::vector<std::int64_t>&) | ||||||
|                                     { UpdateMonospaceFont(); }); |                                     { UpdateMonospaceFont(); }); | ||||||
|  | @ -61,7 +61,7 @@ void ImGui::Impl::UpdateMonospaceFont() | ||||||
|    // Get monospace font size
 |    // Get monospace font size
 | ||||||
|    std::size_t fontSize = 16; |    std::size_t fontSize = 16; | ||||||
|    auto        fontSizes = |    auto        fontSizes = | ||||||
|       manager::SettingsManager::general_settings().font_sizes().GetValue(); |       settings::GeneralSettings::Instance().font_sizes().GetValue(); | ||||||
|    if (fontSizes.size() > 1) |    if (fontSizes.size() > 1) | ||||||
|    { |    { | ||||||
|       fontSize = fontSizes[1]; |       fontSize = fontSizes[1]; | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| #include <scwx/qt/util/tooltip.hpp> | #include <scwx/qt/util/tooltip.hpp> | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/qt/settings/text_settings.hpp> | #include <scwx/qt/settings/text_settings.hpp> | ||||||
| #include <scwx/qt/types/font_types.hpp> | #include <scwx/qt/types/font_types.hpp> | ||||||
| #include <scwx/qt/types/text_types.hpp> | #include <scwx/qt/types/text_types.hpp> | ||||||
|  | @ -100,7 +100,7 @@ void Show(const std::string& text, const QPointF& mouseGlobalPos) | ||||||
|       // Get monospace font size
 |       // Get monospace font size
 | ||||||
|       units::font_size::pixels<double> fontSize {16}; |       units::font_size::pixels<double> fontSize {16}; | ||||||
|       auto                             fontSizes = |       auto                             fontSizes = | ||||||
|          manager::SettingsManager::general_settings().font_sizes().GetValue(); |          settings::GeneralSettings::Instance().font_sizes().GetValue(); | ||||||
|       if (fontSizes.size() > 1) |       if (fontSizes.size() > 1) | ||||||
|       { |       { | ||||||
|          fontSize = units::font_size::pixels<double> {fontSizes[1]}; |          fontSize = units::font_size::pixels<double> {fontSizes[1]}; | ||||||
|  |  | ||||||
|  | @ -1,5 +1,10 @@ | ||||||
| #include <scwx/qt/manager/settings_manager.hpp> | #include <scwx/qt/manager/settings_manager.hpp> | ||||||
| #include <scwx/qt/config/radar_site.hpp> | #include <scwx/qt/config/radar_site.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/map_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/palette_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/text_settings.hpp> | ||||||
|  | #include <scwx/qt/settings/ui_settings.hpp> | ||||||
| 
 | 
 | ||||||
| #include <filesystem> | #include <filesystem> | ||||||
| #include <fstream> | #include <fstream> | ||||||
|  | @ -39,10 +44,14 @@ void VerifyDefaults() | ||||||
|    settings::GeneralSettings defaultGeneralSettings {}; |    settings::GeneralSettings defaultGeneralSettings {}; | ||||||
|    settings::MapSettings     defaultMapSettings {}; |    settings::MapSettings     defaultMapSettings {}; | ||||||
|    settings::PaletteSettings defaultPaletteSettings {}; |    settings::PaletteSettings defaultPaletteSettings {}; | ||||||
|  |    settings::TextSettings    defaultTextSettings {}; | ||||||
|  |    settings::UiSettings      defaultUiSettings {}; | ||||||
| 
 | 
 | ||||||
|    EXPECT_EQ(defaultGeneralSettings, SettingsManager::general_settings()); |    EXPECT_EQ(defaultGeneralSettings, settings::GeneralSettings::Instance()); | ||||||
|    EXPECT_EQ(defaultMapSettings, SettingsManager::map_settings()); |    EXPECT_EQ(defaultMapSettings, settings::MapSettings::Instance()); | ||||||
|    EXPECT_EQ(defaultPaletteSettings, SettingsManager::palette_settings()); |    EXPECT_EQ(defaultPaletteSettings, settings::PaletteSettings::Instance()); | ||||||
|  |    EXPECT_EQ(defaultTextSettings, settings::TextSettings::Instance()); | ||||||
|  |    EXPECT_EQ(defaultUiSettings, settings::UiSettings::Instance()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void CompareFiles(const std::string& file1, const std::string& file2) | void CompareFiles(const std::string& file1, const std::string& file2) | ||||||
|  | @ -86,11 +95,11 @@ TEST_F(SettingsManagerTest, SettingsKeax) | ||||||
|    SettingsManager::ReadSettings(filename); |    SettingsManager::ReadSettings(filename); | ||||||
| 
 | 
 | ||||||
|    EXPECT_EQ( |    EXPECT_EQ( | ||||||
|       SettingsManager::general_settings().default_radar_site().GetValue(), |       settings::GeneralSettings::Instance().default_radar_site().GetValue(), | ||||||
|       "KEAX"); |       "KEAX"); | ||||||
|    for (size_t i = 0; i < SettingsManager::map_settings().count(); ++i) |    for (size_t i = 0; i < settings::MapSettings::Instance().count(); ++i) | ||||||
|    { |    { | ||||||
|       EXPECT_EQ(SettingsManager::map_settings().radar_site(i).GetValue(), |       EXPECT_EQ(settings::MapSettings::Instance().radar_site(i).GetValue(), | ||||||
|                 "KEAX"); |                 "KEAX"); | ||||||
|    } |    } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat