mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-30 23:50:05 +00:00 
			
		
		
		
	Add default alert action to settings
This commit is contained in:
		
							parent
							
								
									411a949be9
								
							
						
					
					
						commit
						ff4e3e63cf
					
				
					 2 changed files with 40 additions and 1 deletions
				
			
		|  | @ -1,6 +1,7 @@ | ||||||
| #include <scwx/qt/settings/general_settings.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/qt/settings/settings_container.hpp> | #include <scwx/qt/settings/settings_container.hpp> | ||||||
| #include <scwx/qt/map/map_provider.hpp> | #include <scwx/qt/map/map_provider.hpp> | ||||||
|  | #include <scwx/qt/types/alert_types.hpp> | ||||||
| 
 | 
 | ||||||
| #include <array> | #include <array> | ||||||
| 
 | 
 | ||||||
|  | @ -20,12 +21,21 @@ class GeneralSettingsImpl | ||||||
| public: | public: | ||||||
|    explicit GeneralSettingsImpl() |    explicit GeneralSettingsImpl() | ||||||
|    { |    { | ||||||
|  |       std::string defaultDefaultAlertActionValue = | ||||||
|  |          types::GetAlertActionName(types::AlertAction::Go); | ||||||
|  |       std::string defaultMapProviderValue = | ||||||
|  |          map::GetMapProviderName(map::MapProvider::MapTiler); | ||||||
|  | 
 | ||||||
|  |       boost::to_lower(defaultDefaultAlertActionValue); | ||||||
|  |       boost::to_lower(defaultMapProviderValue); | ||||||
|  | 
 | ||||||
|       debugEnabled_.SetDefault(false); |       debugEnabled_.SetDefault(false); | ||||||
|  |       defaultAlertAction_.SetDefault(defaultDefaultAlertActionValue); | ||||||
|       defaultRadarSite_.SetDefault("KLSX"); |       defaultRadarSite_.SetDefault("KLSX"); | ||||||
|       fontSizes_.SetDefault({16}); |       fontSizes_.SetDefault({16}); | ||||||
|       gridWidth_.SetDefault(1); |       gridWidth_.SetDefault(1); | ||||||
|       gridHeight_.SetDefault(1); |       gridHeight_.SetDefault(1); | ||||||
|       mapProvider_.SetDefault("maptiler"); |       mapProvider_.SetDefault(defaultMapProviderValue); | ||||||
|       mapboxApiKey_.SetDefault("?"); |       mapboxApiKey_.SetDefault("?"); | ||||||
|       maptilerApiKey_.SetDefault("?"); |       maptilerApiKey_.SetDefault("?"); | ||||||
|       updateNotificationsEnabled_.SetDefault(true); |       updateNotificationsEnabled_.SetDefault(true); | ||||||
|  | @ -38,6 +48,26 @@ public: | ||||||
|       gridWidth_.SetMaximum(2); |       gridWidth_.SetMaximum(2); | ||||||
|       gridHeight_.SetMinimum(1); |       gridHeight_.SetMinimum(1); | ||||||
|       gridHeight_.SetMaximum(2); |       gridHeight_.SetMaximum(2); | ||||||
|  | 
 | ||||||
|  |       defaultAlertAction_.SetValidator( | ||||||
|  |          [](const std::string& value) | ||||||
|  |          { | ||||||
|  |             for (types::AlertAction alertAction : types::AlertActionIterator()) | ||||||
|  |             { | ||||||
|  |                // If the value is equal to a lower case alert action name
 | ||||||
|  |                std::string alertActionName = | ||||||
|  |                   types::GetAlertActionName(alertAction); | ||||||
|  |                boost::to_lower(alertActionName); | ||||||
|  |                if (value == alertActionName) | ||||||
|  |                { | ||||||
|  |                   // Regard as a match, valid
 | ||||||
|  |                   return true; | ||||||
|  |                } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             // No match found, invalid
 | ||||||
|  |             return false; | ||||||
|  |          }); | ||||||
|       mapProvider_.SetValidator( |       mapProvider_.SetValidator( | ||||||
|          [](const std::string& value) |          [](const std::string& value) | ||||||
|          { |          { | ||||||
|  | @ -66,6 +96,7 @@ public: | ||||||
|    ~GeneralSettingsImpl() {} |    ~GeneralSettingsImpl() {} | ||||||
| 
 | 
 | ||||||
|    SettingsVariable<bool>        debugEnabled_ {"debug_enabled"}; |    SettingsVariable<bool>        debugEnabled_ {"debug_enabled"}; | ||||||
|  |    SettingsVariable<std::string> defaultAlertAction_ {"default_alert_action"}; | ||||||
|    SettingsVariable<std::string> defaultRadarSite_ {"default_radar_site"}; |    SettingsVariable<std::string> defaultRadarSite_ {"default_radar_site"}; | ||||||
|    SettingsContainer<std::vector<std::int64_t>> fontSizes_ {"font_sizes"}; |    SettingsContainer<std::vector<std::int64_t>> fontSizes_ {"font_sizes"}; | ||||||
|    SettingsVariable<std::int64_t>               gridWidth_ {"grid_width"}; |    SettingsVariable<std::int64_t>               gridWidth_ {"grid_width"}; | ||||||
|  | @ -80,6 +111,7 @@ GeneralSettings::GeneralSettings() : | ||||||
|     SettingsCategory("general"), p(std::make_unique<GeneralSettingsImpl>()) |     SettingsCategory("general"), p(std::make_unique<GeneralSettingsImpl>()) | ||||||
| { | { | ||||||
|    RegisterVariables({&p->debugEnabled_, |    RegisterVariables({&p->debugEnabled_, | ||||||
|  |                       &p->defaultAlertAction_, | ||||||
|                       &p->defaultRadarSite_, |                       &p->defaultRadarSite_, | ||||||
|                       &p->fontSizes_, |                       &p->fontSizes_, | ||||||
|                       &p->gridWidth_, |                       &p->gridWidth_, | ||||||
|  | @ -101,6 +133,11 @@ SettingsVariable<bool>& GeneralSettings::debug_enabled() const | ||||||
|    return p->debugEnabled_; |    return p->debugEnabled_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | SettingsVariable<std::string>& GeneralSettings::default_alert_action() const | ||||||
|  | { | ||||||
|  |    return p->defaultAlertAction_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| SettingsVariable<std::string>& GeneralSettings::default_radar_site() const | SettingsVariable<std::string>& GeneralSettings::default_radar_site() const | ||||||
| { | { | ||||||
|    return p->defaultRadarSite_; |    return p->defaultRadarSite_; | ||||||
|  | @ -145,6 +182,7 @@ SettingsVariable<bool>& GeneralSettings::update_notifications_enabled() const | ||||||
| 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_ && | ||||||
|  |            lhs.p->defaultAlertAction_ == rhs.p->defaultAlertAction_ && | ||||||
|            lhs.p->defaultRadarSite_ == rhs.p->defaultRadarSite_ && |            lhs.p->defaultRadarSite_ == rhs.p->defaultRadarSite_ && | ||||||
|            lhs.p->fontSizes_ == rhs.p->fontSizes_ && |            lhs.p->fontSizes_ == rhs.p->fontSizes_ && | ||||||
|            lhs.p->gridWidth_ == rhs.p->gridWidth_ && |            lhs.p->gridWidth_ == rhs.p->gridWidth_ && | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ public: | ||||||
|    GeneralSettings& operator=(GeneralSettings&&) noexcept; |    GeneralSettings& operator=(GeneralSettings&&) noexcept; | ||||||
| 
 | 
 | ||||||
|    SettingsVariable<bool>&                       debug_enabled() const; |    SettingsVariable<bool>&                       debug_enabled() const; | ||||||
|  |    SettingsVariable<std::string>&                default_alert_action() const; | ||||||
|    SettingsVariable<std::string>&                default_radar_site() const; |    SettingsVariable<std::string>&                default_radar_site() const; | ||||||
|    SettingsContainer<std::vector<std::int64_t>>& font_sizes() const; |    SettingsContainer<std::vector<std::int64_t>>& font_sizes() const; | ||||||
|    SettingsVariable<std::int64_t>&               grid_height() const; |    SettingsVariable<std::int64_t>&               grid_height() const; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat