mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 01:20:06 +00:00 
			
		
		
		
	Add default alert action to settings dialog
This commit is contained in:
		
							parent
							
								
									ff4e3e63cf
								
							
						
					
					
						commit
						061bc8837f
					
				
					 2 changed files with 130 additions and 67 deletions
				
			
		|  | @ -7,6 +7,7 @@ | |||
| #include <scwx/qt/manager/settings_manager.hpp> | ||||
| #include <scwx/qt/map/map_provider.hpp> | ||||
| #include <scwx/qt/settings/settings_interface.hpp> | ||||
| #include <scwx/qt/types/alert_types.hpp> | ||||
| #include <scwx/qt/ui/radar_site_dialog.hpp> | ||||
| #include <scwx/qt/util/color.hpp> | ||||
| #include <scwx/qt/util/file.hpp> | ||||
|  | @ -88,6 +89,7 @@ public: | |||
|           &mapProvider_, | ||||
|           &mapboxApiKey_, | ||||
|           &mapTilerApiKey_, | ||||
|           &defaultAlertAction_, | ||||
|           &updateNotificationsEnabled_, | ||||
|           &debugEnabled_}} | ||||
|    { | ||||
|  | @ -144,8 +146,9 @@ public: | |||
|    settings::SettingsInterface<std::string>               mapProvider_ {}; | ||||
|    settings::SettingsInterface<std::string>               mapboxApiKey_ {}; | ||||
|    settings::SettingsInterface<std::string>               mapTilerApiKey_ {}; | ||||
|    settings::SettingsInterface<bool> updateNotificationsEnabled_ {}; | ||||
|    settings::SettingsInterface<bool> debugEnabled_ {}; | ||||
|    settings::SettingsInterface<std::string> defaultAlertAction_ {}; | ||||
|    settings::SettingsInterface<bool>        updateNotificationsEnabled_ {}; | ||||
|    settings::SettingsInterface<bool>        debugEnabled_ {}; | ||||
| 
 | ||||
|    std::unordered_map<std::string, settings::SettingsInterface<std::string>> | ||||
|       colorTables_ {}; | ||||
|  | @ -331,10 +334,13 @@ void SettingsDialogImpl::SetupGeneralTab() | |||
|       { | ||||
|          for (map::MapProvider mapProvider : map::MapProviderIterator()) | ||||
|          { | ||||
|             if (boost::iequals(text, map::GetMapProviderName(mapProvider))) | ||||
|             const std::string mapProviderName = | ||||
|                map::GetMapProviderName(mapProvider); | ||||
| 
 | ||||
|             if (boost::iequals(text, mapProviderName)) | ||||
|             { | ||||
|                // Return map provider label
 | ||||
|                return GetMapProviderName(mapProvider); | ||||
|                return mapProviderName; | ||||
|             } | ||||
|          } | ||||
| 
 | ||||
|  | @ -359,6 +365,42 @@ void SettingsDialogImpl::SetupGeneralTab() | |||
|    mapTilerApiKey_.SetEditWidget(self_->ui->mapTilerApiKeyLineEdit); | ||||
|    mapTilerApiKey_.SetResetButton(self_->ui->resetMapTilerApiKeyButton); | ||||
| 
 | ||||
|    for (const auto& alertAction : types::AlertActionIterator()) | ||||
|    { | ||||
|       self_->ui->defaultAlertActionComboBox->addItem( | ||||
|          QString::fromStdString(types::GetAlertActionName(alertAction))); | ||||
|    } | ||||
| 
 | ||||
|    defaultAlertAction_.SetSettingsVariable( | ||||
|       generalSettings.default_alert_action()); | ||||
|    defaultAlertAction_.SetMapFromValueFunction( | ||||
|       [](const std::string& text) -> std::string | ||||
|       { | ||||
|          for (types::AlertAction alertAction : types::AlertActionIterator()) | ||||
|          { | ||||
|             const std::string alertActionName = | ||||
|                types::GetAlertActionName(alertAction); | ||||
| 
 | ||||
|             if (boost::iequals(text, alertActionName)) | ||||
|             { | ||||
|                // Return alert action label
 | ||||
|                return alertActionName; | ||||
|             } | ||||
|          } | ||||
| 
 | ||||
|          // Alert action label not found, return unknown
 | ||||
|          return "?"; | ||||
|       }); | ||||
|    defaultAlertAction_.SetMapToValueFunction( | ||||
|       [](std::string text) -> std::string | ||||
|       { | ||||
|          // Convert label to lower case and return
 | ||||
|          boost::to_lower(text); | ||||
|          return text; | ||||
|       }); | ||||
|    defaultAlertAction_.SetEditWidget(self_->ui->defaultAlertActionComboBox); | ||||
|    defaultAlertAction_.SetResetButton(self_->ui->resetDefaultAlertActionButton); | ||||
| 
 | ||||
|    updateNotificationsEnabled_.SetSettingsVariable( | ||||
|       generalSettings.update_notifications_enabled()); | ||||
|    updateNotificationsEnabled_.SetEditWidget( | ||||
|  |  | |||
|  | @ -109,39 +109,58 @@ | |||
|              <property name="bottomMargin"> | ||||
|               <number>0</number> | ||||
|              </property> | ||||
|              <item row="5" column="2"> | ||||
|               <widget class="QComboBox" name="mapProviderComboBox"/> | ||||
|              </item> | ||||
|              <item row="1" column="0"> | ||||
|               <widget class="QLabel" name="label_5"> | ||||
|                <property name="text"> | ||||
|                 <string>Font Sizes</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="0" column="2"> | ||||
|               <widget class="QComboBox" name="radarSiteComboBox"/> | ||||
|              </item> | ||||
|              <item row="0" column="0"> | ||||
|               <widget class="QLabel" name="label"> | ||||
|                <property name="text"> | ||||
|                 <string>Default Radar Site</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="5" column="4"> | ||||
|               <widget class="QToolButton" name="resetMapProviderButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|                <property name="icon"> | ||||
|                 <iconset resource="../../../../scwx-qt.qrc"> | ||||
|                  <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="1" column="2"> | ||||
|               <widget class="QLineEdit" name="fontSizesLineEdit"/> | ||||
|              </item> | ||||
|              <item row="0" column="3"> | ||||
|               <widget class="QToolButton" name="radarSiteSelectButton"> | ||||
|              <item row="6" column="0"> | ||||
|               <widget class="QLabel" name="label_4"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                 <string>Mapbox API Key</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="0" column="4"> | ||||
|               <widget class="QToolButton" name="resetRadarSiteButton"> | ||||
|              <item row="7" column="0"> | ||||
|               <widget class="QLabel" name="label_6"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|                <property name="icon"> | ||||
|                 <iconset resource="../../../../scwx-qt.qrc"> | ||||
|                  <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||
|                 <string>MapTiler API Key</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="2" column="4"> | ||||
|               <widget class="QToolButton" name="resetGridWidthButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|                <property name="icon"> | ||||
|                 <iconset resource="../../../../scwx-qt.qrc"> | ||||
|                  <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||
|                </property> | ||||
|               </widget> | ||||
|              <item row="2" column="2"> | ||||
|               <widget class="QSpinBox" name="gridWidthSpinBox"/> | ||||
|              </item> | ||||
|              <item row="6" column="4"> | ||||
|              <item row="7" column="4"> | ||||
|               <widget class="QToolButton" name="resetMapTilerApiKeyButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|  | @ -152,17 +171,10 @@ | |||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="1" column="0"> | ||||
|               <widget class="QLabel" name="label_5"> | ||||
|              <item row="0" column="3"> | ||||
|               <widget class="QToolButton" name="radarSiteSelectButton"> | ||||
|                <property name="text"> | ||||
|                 <string>Font Sizes</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="6" column="0"> | ||||
|               <widget class="QLabel" name="label_6"> | ||||
|                <property name="text"> | ||||
|                 <string>MapTiler API Key</string> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|  | @ -177,8 +189,22 @@ | |||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="2" column="2"> | ||||
|               <widget class="QSpinBox" name="gridWidthSpinBox"/> | ||||
|              <item row="7" column="2"> | ||||
|               <widget class="QLineEdit" name="mapTilerApiKeyLineEdit"/> | ||||
|              </item> | ||||
|              <item row="3" column="2"> | ||||
|               <widget class="QSpinBox" name="gridHeightSpinBox"/> | ||||
|              </item> | ||||
|              <item row="0" column="4"> | ||||
|               <widget class="QToolButton" name="resetRadarSiteButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|                <property name="icon"> | ||||
|                 <iconset resource="../../../../scwx-qt.qrc"> | ||||
|                  <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="3" column="0"> | ||||
|               <widget class="QLabel" name="label_3"> | ||||
|  | @ -199,12 +225,9 @@ | |||
|               </widget> | ||||
|              </item> | ||||
|              <item row="6" column="2"> | ||||
|               <widget class="QLineEdit" name="mapTilerApiKeyLineEdit"/> | ||||
|               <widget class="QLineEdit" name="mapboxApiKeyLineEdit"/> | ||||
|              </item> | ||||
|              <item row="0" column="2"> | ||||
|               <widget class="QComboBox" name="radarSiteComboBox"/> | ||||
|              </item> | ||||
|              <item row="5" column="4"> | ||||
|              <item row="6" column="4"> | ||||
|               <widget class="QToolButton" name="resetMapboxApiKeyButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|  | @ -215,19 +238,6 @@ | |||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="5" column="2"> | ||||
|               <widget class="QLineEdit" name="mapboxApiKeyLineEdit"/> | ||||
|              </item> | ||||
|              <item row="5" column="0"> | ||||
|               <widget class="QLabel" name="label_4"> | ||||
|                <property name="text"> | ||||
|                 <string>Mapbox API Key</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="3" column="2"> | ||||
|               <widget class="QSpinBox" name="gridHeightSpinBox"/> | ||||
|              </item> | ||||
|              <item row="2" column="0"> | ||||
|               <widget class="QLabel" name="label_2"> | ||||
|                <property name="text"> | ||||
|  | @ -235,25 +245,36 @@ | |||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="0" column="0"> | ||||
|               <widget class="QLabel" name="label"> | ||||
|                <property name="text"> | ||||
|                 <string>Default Radar Site</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="4" column="0"> | ||||
|              <item row="5" column="0"> | ||||
|               <widget class="QLabel" name="label_7"> | ||||
|                <property name="text"> | ||||
|                 <string>Map Provider</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="4" column="2"> | ||||
|               <widget class="QComboBox" name="mapProviderComboBox"/> | ||||
|              <item row="2" column="4"> | ||||
|               <widget class="QToolButton" name="resetGridWidthButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|                <property name="icon"> | ||||
|                 <iconset resource="../../../../scwx-qt.qrc"> | ||||
|                  <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="4" column="4"> | ||||
|               <widget class="QToolButton" name="resetMapProviderButton"> | ||||
|              <item row="8" column="0"> | ||||
|               <widget class="QLabel" name="defaultAlertActionLabel"> | ||||
|                <property name="text"> | ||||
|                 <string>Default Alert Action</string> | ||||
|                </property> | ||||
|               </widget> | ||||
|              </item> | ||||
|              <item row="8" column="2"> | ||||
|               <widget class="QComboBox" name="defaultAlertActionComboBox"/> | ||||
|              </item> | ||||
|              <item row="8" column="4"> | ||||
|               <widget class="QToolButton" name="resetDefaultAlertActionButton"> | ||||
|                <property name="text"> | ||||
|                 <string>...</string> | ||||
|                </property> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat