mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 02:20:04 +00:00 
			
		
		
		
	Add fusion style to settings (enables dark mode)
This commit is contained in:
		
							parent
							
								
									e69f5c8a62
								
							
						
					
					
						commit
						6e390a1a97
					
				
					 9 changed files with 261 additions and 101 deletions
				
			
		|  | @ -6,6 +6,8 @@ | |||
| #include <scwx/qt/manager/radar_product_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/qt/types/qt_types.hpp> | ||||
| #include <scwx/qt/ui/setup/setup_wizard.hpp> | ||||
| #include <scwx/network/cpr.hpp> | ||||
| #include <scwx/util/logger.hpp> | ||||
|  | @ -72,6 +74,15 @@ int main(int argc, char* argv[]) | |||
|    scwx::qt::config::RadarSite::Initialize(); | ||||
|    scwx::qt::manager::SettingsManager::Instance().Initialize(); | ||||
| 
 | ||||
|    // Theme
 | ||||
|    auto uiStyle = scwx::qt::types::GetUiStyle( | ||||
|       scwx::qt::settings::GeneralSettings::Instance().theme().GetValue()); | ||||
|    if (uiStyle != scwx::qt::types::UiStyle::Default) | ||||
|    { | ||||
|       QApplication::setStyle( | ||||
|          QString::fromStdString(scwx::qt::types::GetUiStyleName(uiStyle))); | ||||
|    } | ||||
| 
 | ||||
|    // Run initial setup if required
 | ||||
|    if (scwx::qt::ui::setup::SetupWizard::IsSetupRequired()) | ||||
|    { | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| #include <scwx/qt/settings/settings_container.hpp> | ||||
| #include <scwx/qt/map/map_provider.hpp> | ||||
| #include <scwx/qt/types/alert_types.hpp> | ||||
| #include <scwx/qt/types/qt_types.hpp> | ||||
| 
 | ||||
| #include <array> | ||||
| 
 | ||||
|  | @ -25,9 +26,12 @@ public: | |||
|          types::GetAlertActionName(types::AlertAction::Go); | ||||
|       std::string defaultMapProviderValue = | ||||
|          map::GetMapProviderName(map::MapProvider::MapTiler); | ||||
|       std::string defaultThemeValue = | ||||
|          types::GetUiStyleName(types::UiStyle::Default); | ||||
| 
 | ||||
|       boost::to_lower(defaultDefaultAlertActionValue); | ||||
|       boost::to_lower(defaultMapProviderValue); | ||||
|       boost::to_lower(defaultThemeValue); | ||||
| 
 | ||||
|       antiAliasingEnabled_.SetDefault(true); | ||||
|       debugEnabled_.SetDefault(false); | ||||
|  | @ -42,6 +46,7 @@ public: | |||
|       mapProvider_.SetDefault(defaultMapProviderValue); | ||||
|       mapboxApiKey_.SetDefault("?"); | ||||
|       maptilerApiKey_.SetDefault("?"); | ||||
|       theme_.SetDefault(defaultThemeValue); | ||||
|       trackLocation_.SetDefault(false); | ||||
|       updateNotificationsEnabled_.SetDefault(true); | ||||
| 
 | ||||
|  | @ -102,6 +107,24 @@ public: | |||
|                                  { return !value.empty(); }); | ||||
|       maptilerApiKey_.SetValidator([](const std::string& value) | ||||
|                                    { return !value.empty(); }); | ||||
|       theme_.SetValidator( | ||||
|          [](const std::string& value) | ||||
|          { | ||||
|             for (types::UiStyle uiStyle : types::UiStyleIterator()) | ||||
|             { | ||||
|                // If the value is equal to a lower case UI style name
 | ||||
|                std::string uiStyleName = types::GetUiStyleName(uiStyle); | ||||
|                boost::to_lower(uiStyleName); | ||||
|                if (value == uiStyleName) | ||||
|                { | ||||
|                   // Regard as a match, valid
 | ||||
|                   return true; | ||||
|                } | ||||
|             } | ||||
| 
 | ||||
|             // No match found, invalid
 | ||||
|             return false; | ||||
|          }); | ||||
|    } | ||||
| 
 | ||||
|    ~Impl() {} | ||||
|  | @ -119,6 +142,7 @@ public: | |||
|    SettingsVariable<std::string>                mapProvider_ {"map_provider"}; | ||||
|    SettingsVariable<std::string> mapboxApiKey_ {"mapbox_api_key"}; | ||||
|    SettingsVariable<std::string> maptilerApiKey_ {"maptiler_api_key"}; | ||||
|    SettingsVariable<std::string> theme_ {"theme"}; | ||||
|    SettingsVariable<bool>        trackLocation_ {"track_location"}; | ||||
|    SettingsVariable<bool> updateNotificationsEnabled_ {"update_notifications"}; | ||||
| }; | ||||
|  | @ -139,6 +163,7 @@ GeneralSettings::GeneralSettings() : | |||
|                       &p->mapProvider_, | ||||
|                       &p->mapboxApiKey_, | ||||
|                       &p->maptilerApiKey_, | ||||
|                       &p->theme_, | ||||
|                       &p->trackLocation_, | ||||
|                       &p->updateNotificationsEnabled_}); | ||||
|    SetDefaults(); | ||||
|  | @ -215,6 +240,11 @@ SettingsVariable<std::string>& GeneralSettings::maptiler_api_key() const | |||
|    return p->maptilerApiKey_; | ||||
| } | ||||
| 
 | ||||
| SettingsVariable<std::string>& GeneralSettings::theme() const | ||||
| { | ||||
|    return p->theme_; | ||||
| } | ||||
| 
 | ||||
| SettingsVariable<bool>& GeneralSettings::track_location() const | ||||
| { | ||||
|    return p->trackLocation_; | ||||
|  | @ -259,6 +289,7 @@ bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs) | |||
|            lhs.p->mapProvider_ == rhs.p->mapProvider_ && | ||||
|            lhs.p->mapboxApiKey_ == rhs.p->mapboxApiKey_ && | ||||
|            lhs.p->maptilerApiKey_ == rhs.p->maptilerApiKey_ && | ||||
|            lhs.p->theme_ == rhs.p->theme_ && | ||||
|            lhs.p->trackLocation_ == rhs.p->trackLocation_ && | ||||
|            lhs.p->updateNotificationsEnabled_ == | ||||
|               rhs.p->updateNotificationsEnabled_); | ||||
|  |  | |||
|  | @ -38,6 +38,7 @@ public: | |||
|    SettingsVariable<std::string>&                map_provider() const; | ||||
|    SettingsVariable<std::string>&                mapbox_api_key() const; | ||||
|    SettingsVariable<std::string>&                maptiler_api_key() const; | ||||
|    SettingsVariable<std::string>&                theme() const; | ||||
|    SettingsVariable<bool>&                       track_location() const; | ||||
|    SettingsVariable<bool>& update_notifications_enabled() const; | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										42
									
								
								scwx-qt/source/scwx/qt/types/qt_types.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								scwx-qt/source/scwx/qt/types/qt_types.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| #include <scwx/qt/types/qt_types.hpp> | ||||
| 
 | ||||
| #include <boost/algorithm/string.hpp> | ||||
| 
 | ||||
| namespace scwx | ||||
| { | ||||
| namespace qt | ||||
| { | ||||
| namespace types | ||||
| { | ||||
| 
 | ||||
| static const std::unordered_map<UiStyle, std::string> uiStyleName_ { | ||||
|    {UiStyle::Default, "Default"}, | ||||
|    {UiStyle::Fusion, "Fusion"}, | ||||
|    {UiStyle::Unknown, "?"}}; | ||||
| 
 | ||||
| UiStyle GetUiStyle(const std::string& name) | ||||
| { | ||||
|    auto result = | ||||
|       std::find_if(uiStyleName_.cbegin(), | ||||
|                    uiStyleName_.cend(), | ||||
|                    [&](const std::pair<UiStyle, std::string>& pair) -> bool | ||||
|                    { return boost::iequals(pair.second, name); }); | ||||
| 
 | ||||
|    if (result != uiStyleName_.cend()) | ||||
|    { | ||||
|       return result->first; | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       return UiStyle::Unknown; | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| std::string GetUiStyleName(UiStyle uiStyle) | ||||
| { | ||||
|    return uiStyleName_.at(uiStyle); | ||||
| } | ||||
| 
 | ||||
| } // namespace types
 | ||||
| } // namespace qt
 | ||||
| } // namespace scwx
 | ||||
|  | @ -1,5 +1,9 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <scwx/util/iterator.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| #include <Qt> | ||||
| 
 | ||||
| namespace scwx | ||||
|  | @ -16,6 +20,18 @@ enum ItemDataRole | |||
|    RawDataRole | ||||
| }; | ||||
| 
 | ||||
| enum UiStyle | ||||
| { | ||||
|    Default, | ||||
|    Fusion, | ||||
|    Unknown | ||||
| }; | ||||
| typedef scwx::util::Iterator<UiStyle, UiStyle::Default, UiStyle::Fusion> | ||||
|    UiStyleIterator; | ||||
| 
 | ||||
| UiStyle     GetUiStyle(const std::string& name); | ||||
| std::string GetUiStyleName(UiStyle alertAction); | ||||
| 
 | ||||
| } // namespace types
 | ||||
| } // namespace qt
 | ||||
| } // namespace scwx
 | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ | |||
| #include <scwx/qt/settings/text_settings.hpp> | ||||
| #include <scwx/qt/types/alert_types.hpp> | ||||
| #include <scwx/qt/types/font_types.hpp> | ||||
| #include <scwx/qt/types/qt_types.hpp> | ||||
| #include <scwx/qt/types/text_types.hpp> | ||||
| #include <scwx/qt/ui/radar_site_dialog.hpp> | ||||
| #include <scwx/qt/util/color.hpp> | ||||
|  | @ -98,6 +99,7 @@ public: | |||
|           &mapProvider_, | ||||
|           &mapboxApiKey_, | ||||
|           &mapTilerApiKey_, | ||||
|           &theme_, | ||||
|           &defaultAlertAction_, | ||||
|           &antiAliasingEnabled_, | ||||
|           &updateNotificationsEnabled_, | ||||
|  | @ -175,6 +177,7 @@ public: | |||
|    settings::SettingsInterface<std::string>  mapboxApiKey_ {}; | ||||
|    settings::SettingsInterface<std::string>  mapTilerApiKey_ {}; | ||||
|    settings::SettingsInterface<std::string>  defaultAlertAction_ {}; | ||||
|    settings::SettingsInterface<std::string>  theme_ {}; | ||||
|    settings::SettingsInterface<bool>         antiAliasingEnabled_ {}; | ||||
|    settings::SettingsInterface<bool>         updateNotificationsEnabled_ {}; | ||||
|    settings::SettingsInterface<bool>         debugEnabled_ {}; | ||||
|  | @ -366,6 +369,43 @@ void SettingsDialogImpl::ConnectSignals() | |||
| 
 | ||||
| void SettingsDialogImpl::SetupGeneralTab() | ||||
| { | ||||
|    settings::GeneralSettings& generalSettings = | ||||
|       settings::GeneralSettings::Instance(); | ||||
| 
 | ||||
|    for (const auto& uiStyle : types::UiStyleIterator()) | ||||
|    { | ||||
|       self_->ui->themeComboBox->addItem( | ||||
|          QString::fromStdString(types::GetUiStyleName(uiStyle))); | ||||
|    } | ||||
| 
 | ||||
|    theme_.SetSettingsVariable(generalSettings.theme()); | ||||
|    theme_.SetMapFromValueFunction( | ||||
|       [](const std::string& text) -> std::string | ||||
|       { | ||||
|          for (types::UiStyle uiStyle : types::UiStyleIterator()) | ||||
|          { | ||||
|             const std::string uiStyleName = types::GetUiStyleName(uiStyle); | ||||
| 
 | ||||
|             if (boost::iequals(text, uiStyleName)) | ||||
|             { | ||||
|                // Return UI style label
 | ||||
|                return uiStyleName; | ||||
|             } | ||||
|          } | ||||
| 
 | ||||
|          // UI style label not found, return unknown
 | ||||
|          return "?"; | ||||
|       }); | ||||
|    theme_.SetMapToValueFunction( | ||||
|       [](std::string text) -> std::string | ||||
|       { | ||||
|          // Convert label to lower case and return
 | ||||
|          boost::to_lower(text); | ||||
|          return text; | ||||
|       }); | ||||
|    theme_.SetEditWidget(self_->ui->themeComboBox); | ||||
|    theme_.SetResetButton(self_->ui->resetThemeButton); | ||||
| 
 | ||||
|    auto radarSites = config::RadarSite::GetAll(); | ||||
| 
 | ||||
|    // Sort radar sites by ID
 | ||||
|  | @ -382,9 +422,6 @@ void SettingsDialogImpl::SetupGeneralTab() | |||
|       self_->ui->radarSiteComboBox->addItem(text); | ||||
|    } | ||||
| 
 | ||||
|    settings::GeneralSettings& generalSettings = | ||||
|       settings::GeneralSettings::Instance(); | ||||
| 
 | ||||
|    defaultRadarSite_.SetSettingsVariable(generalSettings.default_radar_site()); | ||||
|    defaultRadarSite_.SetMapFromValueFunction( | ||||
|       [](const std::string& id) -> std::string | ||||
|  |  | |||
|  | @ -120,7 +120,7 @@ | |||
|               <property name="bottomMargin"> | ||||
|                <number>0</number> | ||||
|               </property> | ||||
|               <item row="4" column="4"> | ||||
|               <item row="5" column="4"> | ||||
|                <widget class="QToolButton" name="resetMapProviderButton"> | ||||
|                 <property name="text"> | ||||
|                  <string>...</string> | ||||
|  | @ -131,25 +131,37 @@ | |||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="1" column="0"> | ||||
|                <widget class="QLabel" name="label_2"> | ||||
|                 <property name="text"> | ||||
|                  <string>Grid Width</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="2" column="4"> | ||||
|                <widget class="QToolButton" name="resetGridHeightButton"> | ||||
|               <item row="1" column="3"> | ||||
|                <widget class="QToolButton" name="radarSiteSelectButton"> | ||||
|                 <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> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="5" column="0"> | ||||
|                <widget class="QLabel" name="label_7"> | ||||
|                 <property name="text"> | ||||
|                  <string>Map Provider</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="0" column="4"> | ||||
|               <item row="1" column="2"> | ||||
|                <widget class="QComboBox" name="radarSiteComboBox"/> | ||||
|               </item> | ||||
|               <item row="3" column="0"> | ||||
|                <widget class="QLabel" name="label_3"> | ||||
|                 <property name="text"> | ||||
|                  <string>Grid Height</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="3" column="2"> | ||||
|                <widget class="QSpinBox" name="gridHeightSpinBox"/> | ||||
|               </item> | ||||
|               <item row="2" column="2"> | ||||
|                <widget class="QSpinBox" name="gridWidthSpinBox"/> | ||||
|               </item> | ||||
|               <item row="1" column="4"> | ||||
|                <widget class="QToolButton" name="resetRadarSiteButton"> | ||||
|                 <property name="text"> | ||||
|                  <string>...</string> | ||||
|  | @ -160,101 +172,52 @@ | |||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="6" column="0"> | ||||
|                <widget class="QLabel" name="label_6"> | ||||
|                 <property name="text"> | ||||
|                  <string>MapTiler API Key</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="5" column="4"> | ||||
|                <widget class="QToolButton" name="resetMapboxApiKeyButton"> | ||||
|                 <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="2" column="2"> | ||||
|                <widget class="QSpinBox" name="gridHeightSpinBox"/> | ||||
|               </item> | ||||
|               <item row="1" column="2"> | ||||
|                <widget class="QSpinBox" name="gridWidthSpinBox"/> | ||||
|               </item> | ||||
|               <item row="2" column="0"> | ||||
|                <widget class="QLabel" name="label_3"> | ||||
|                 <property name="text"> | ||||
|                  <string>Grid Height</string> | ||||
|                 </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="6" column="2"> | ||||
|                <widget class="QLineEdit" name="mapTilerApiKeyLineEdit"> | ||||
|                 <property name="echoMode"> | ||||
|                  <enum>QLineEdit::Password</enum> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="5" column="2"> | ||||
|                <widget class="QLineEdit" name="mapboxApiKeyLineEdit"> | ||||
|                 <property name="echoMode"> | ||||
|                  <enum>QLineEdit::Password</enum> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="7" column="0"> | ||||
|               <item row="2" column="0"> | ||||
|                <widget class="QLabel" name="label_2"> | ||||
|                 <property name="text"> | ||||
|                  <string>Grid Width</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="8" column="0"> | ||||
|                <widget class="QLabel" name="defaultAlertActionLabel"> | ||||
|                 <property name="text"> | ||||
|                  <string>Default Alert Action</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="5" column="0"> | ||||
|                <widget class="QLabel" name="label_4"> | ||||
|               <item row="7" column="0"> | ||||
|                <widget class="QLabel" name="label_6"> | ||||
|                 <property name="text"> | ||||
|                  <string>Mapbox API Key</string> | ||||
|                  <string>MapTiler API Key</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="1" column="0"> | ||||
|                <widget class="QLabel" name="label"> | ||||
|                 <property name="text"> | ||||
|                  <string>Default Radar Site</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="7" column="2"> | ||||
|                <widget class="QLineEdit" name="mapTilerApiKeyLineEdit"> | ||||
|                 <property name="echoMode"> | ||||
|                  <enum>QLineEdit::Password</enum> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="8" column="2"> | ||||
|                <widget class="QComboBox" name="defaultAlertActionComboBox"/> | ||||
|               </item> | ||||
|               <item row="7" column="4"> | ||||
|                <widget class="QToolButton" name="resetDefaultAlertActionButton"> | ||||
|                 <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="2"> | ||||
|                <widget class="QComboBox" name="mapProviderComboBox"/> | ||||
|               </item> | ||||
|               <item row="0" column="3"> | ||||
|                <widget class="QToolButton" name="radarSiteSelectButton"> | ||||
|                 <property name="text"> | ||||
|                  <string>...</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="4" column="0"> | ||||
|                <widget class="QLabel" name="label_7"> | ||||
|                 <property name="text"> | ||||
|                  <string>Map Provider</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="6" column="4"> | ||||
|                <widget class="QToolButton" name="resetMapTilerApiKeyButton"> | ||||
|                 <property name="text"> | ||||
|                  <string>...</string> | ||||
|  | @ -265,10 +228,28 @@ | |||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="7" column="2"> | ||||
|                <widget class="QComboBox" name="defaultAlertActionComboBox"/> | ||||
|               <item row="3" column="4"> | ||||
|                <widget class="QToolButton" name="resetGridHeightButton"> | ||||
|                 <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="4"> | ||||
|               <item row="5" column="2"> | ||||
|                <widget class="QComboBox" name="mapProviderComboBox"/> | ||||
|               </item> | ||||
|               <item row="6" column="0"> | ||||
|                <widget class="QLabel" name="label_4"> | ||||
|                 <property name="text"> | ||||
|                  <string>Mapbox API Key</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="2" column="4"> | ||||
|                <widget class="QToolButton" name="resetGridWidthButton"> | ||||
|                 <property name="text"> | ||||
|                  <string>...</string> | ||||
|  | @ -279,8 +260,48 @@ | |||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="8" column="4"> | ||||
|                <widget class="QToolButton" name="resetDefaultAlertActionButton"> | ||||
|                 <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="6" column="4"> | ||||
|                <widget class="QToolButton" name="resetMapboxApiKeyButton"> | ||||
|                 <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="0" column="0"> | ||||
|                <widget class="QLabel" name="label_5"> | ||||
|                 <property name="text"> | ||||
|                  <string>Theme</string> | ||||
|                 </property> | ||||
|                </widget> | ||||
|               </item> | ||||
|               <item row="0" column="2"> | ||||
|                <widget class="QComboBox" name="radarSiteComboBox"/> | ||||
|                <widget class="QComboBox" name="themeComboBox"/> | ||||
|               </item> | ||||
|               <item row="0" column="4"> | ||||
|                <widget class="QToolButton" name="resetThemeButton"> | ||||
|                 <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> | ||||
|              </layout> | ||||
|             </widget> | ||||
|  | @ -343,8 +364,8 @@ | |||
|                    <rect> | ||||
|                     <x>0</x> | ||||
|                     <y>0</y> | ||||
|                     <width>512</width> | ||||
|                     <height>382</height> | ||||
|                     <width>63</width> | ||||
|                     <height>18</height> | ||||
|                    </rect> | ||||
|                   </property> | ||||
|                   <layout class="QGridLayout" name="gridLayout_3"> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat