mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 07:20:04 +00:00 
			
		
		
		
	First addition of qt6ct based color palettes to give dark mode on all platforms.
This commit is contained in:
		
							parent
							
								
									194638f759
								
							
						
					
					
						commit
						0bce0e2bd7
					
				
					 15 changed files with 187 additions and 1 deletions
				
			
		|  | @ -35,6 +35,7 @@ Supercell Wx uses code from the following dependencies: | ||||||
| | [nunicode](https://bitbucket.org/alekseyt/nunicode/src/master/) | [MIT License](https://spdx.org/licenses/MIT.html) | Modified for MapLibre Native | | | [nunicode](https://bitbucket.org/alekseyt/nunicode/src/master/) | [MIT License](https://spdx.org/licenses/MIT.html) | Modified for MapLibre Native | | ||||||
| | [OpenSSL](https://www.openssl.org/) | [OpenSSL License](https://spdx.org/licenses/OpenSSL.html) | | | [OpenSSL](https://www.openssl.org/) | [OpenSSL License](https://spdx.org/licenses/OpenSSL.html) | | ||||||
| | [Qt](https://www.qt.io/) | [GNU Lesser General Public License v3.0 only](https://spdx.org/licenses/LGPL-3.0-only.html) | Qt Core, Qt GUI, Qt Multimedia, Qt Network, Qt OpenGL, Qt Positioning, Qt Serial Port, Qt SQL, Qt SVG, Qt Widgets<br/>Additional Licenses: https://doc.qt.io/qt-6/licenses-used-in-qt.html | | | [Qt](https://www.qt.io/) | [GNU Lesser General Public License v3.0 only](https://spdx.org/licenses/LGPL-3.0-only.html) | Qt Core, Qt GUI, Qt Multimedia, Qt Network, Qt OpenGL, Qt Positioning, Qt Serial Port, Qt SQL, Qt SVG, Qt Widgets<br/>Additional Licenses: https://doc.qt.io/qt-6/licenses-used-in-qt.html | | ||||||
|  | | [qt6ct](https://github.com/trialuser02/qt6ct) | [BSD 2-Clause "Simplified" License](https://spdx.org/licenses/BSD-2-Clause.html) | | ||||||
| | [re2](https://github.com/google/re2) | [BSD 3-Clause "New" or "Revised" License](https://spdx.org/licenses/BSD-3-Clause.html) | | | [re2](https://github.com/google/re2) | [BSD 3-Clause "New" or "Revised" License](https://spdx.org/licenses/BSD-3-Clause.html) | | ||||||
| | [spdlog](https://github.com/gabime/spdlog) | [MIT License](https://spdx.org/licenses/MIT.html) | | | [spdlog](https://github.com/gabime/spdlog) | [MIT License](https://spdx.org/licenses/MIT.html) | | ||||||
| | [SQLite](https://www.sqlite.org/) | Public Domain | | | [SQLite](https://www.sqlite.org/) | Public Domain | | ||||||
|  | @ -67,6 +68,7 @@ Supercell Wx uses assets from the following sources: | ||||||
| | [Font Awesome Free](https://fontawesome.com/) | CC BY 4.0 License | | | [Font Awesome Free](https://fontawesome.com/) | CC BY 4.0 License | | ||||||
| | [Inconsolata](https://fonts.google.com/specimen/Inconsolata) | SIL Open Font License | | | [Inconsolata](https://fonts.google.com/specimen/Inconsolata) | SIL Open Font License | | ||||||
| | [NOAA's Weather and Climate Toolkit](https://www.ncdc.noaa.gov/wct/) | Public Domain | Default Color Tables | | | [NOAA's Weather and Climate Toolkit](https://www.ncdc.noaa.gov/wct/) | Public Domain | Default Color Tables | | ||||||
|  | | [qt6ct](https://github.com/trialuser02/qt6ct) | [BSD 2-Clause "Simplified" License](https://spdx.org/licenses/BSD-2-Clause.html) | | ||||||
| | [Roboto Flex](https://fonts.google.com/specimen/Roboto+Flex) | SIL Open Font License | | | [Roboto Flex](https://fonts.google.com/specimen/Roboto+Flex) | SIL Open Font License | | ||||||
| | [Supercell thunderstorm with dramatic clouds](https://www.shutterstock.com/image-photo/supercell-thunderstorm-dramatic-clouds-1354353521) | Shutterstock Standard License | Photo by John Sirlin | | [Supercell thunderstorm with dramatic clouds](https://www.shutterstock.com/image-photo/supercell-thunderstorm-dramatic-clouds-1354353521) | Shutterstock Standard License | Photo by John Sirlin | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/airy.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/airy.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ff000000, #ffdcdcdc, #ffdcdcdc, #ff5e5c5b, #ff646464, #ffe1e1e1, #ff000000, #ff0a0a0a, #ff0a0a0a, #ffc8c8c8, #ffffffff, #ffe7e4e0, #ff0986d3, #ff0a0a0a, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff646464, #ff050505, #80000000 | ||||||
|  | disabled_colors=#ffffffff, #ff424245, #ffdcdcdc, #ff5e5c5b, #ff646464, #ffe1e1e1, #ff808080, #ffffffff, #ff808080, #ff969696, #ffc8c8c8, #ffe7e4e0, #ff0986d3, #ff808080, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff646464, #ffffffff, #80000000 | ||||||
|  | inactive_colors=#ff323232, #ffb4b4b4, #ffdcdcdc, #ff5e5c5b, #ff646464, #ffe1e1e1, #ff323232, #ff323232, #ff323232, #ff969696, #ffc8c8c8, #ffe7e4e0, #ff0986d3, #ff323232, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff646464, #ff323232, #80000000 | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/darker.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/darker.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ffffffff, #ff424245, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ffffffff, #ffffffff, #ffffffff, #ff3d3d3d, #ff222020, #ffe7e4e0, #ff12608a, #fff9f9f9, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff3f3f36, #ffffffff, #80ffffff | ||||||
|  | disabled_colors=#ff808080, #ff424245, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ff808080, #ffffffff, #ff808080, #ff3d3d3d, #ff222020, #ffe7e4e0, #ff12608a, #ff808080, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff3f3f36, #ffffffff, #80ffffff | ||||||
|  | inactive_colors=#ffffffff, #ff424245, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ffffffff, #ffffffff, #ffffffff, #ff3d3d3d, #ff222020, #ffe7e4e0, #ff12608a, #fff9f9f9, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff3f3f36, #ffffffff, #80ffffff | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/dusk.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/dusk.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ff000000, #ff7f7f7f, #ffffffff, #ffcbc7c4, #ff7f7f7f, #ffb8b5b2, #ff000000, #ffffffff, #ff000000, #ff7f7f7f, #ff7f7f7f, #ff707070, #ff308cc6, #ffffffff, #ff0000ff, #ffff00ff, #ff7f7f7f, #ff000000, #ff7f7f7f, #ff000000, #80000000 | ||||||
|  | disabled_colors=#ffbebebe, #ff7f7f7f, #ffffffff, #ffcbc7c4, #ff7f7f7f, #ffb8b5b2, #ffbebebe, #ffffffff, #ffbebebe, #ff7f7f7f, #ff7f7f7f, #ffb1aeab, #ff7f7f7f, #ffffffff, #ff0000ff, #ffff00ff, #ff7f7f7f, #ff000000, #ff7f7f7f, #ff000000, #80000000 | ||||||
|  | inactive_colors=#ff000000, #ff7f7f7f, #ffffffff, #ffcbc7c4, #ff7f7f7f, #ffb8b5b2, #ff000000, #ffffffff, #ff000000, #ff7f7f7f, #ff7f7f7f, #ff707070, #ff308cc6, #ffffffff, #ff0000ff, #ffff00ff, #ff7f7f7f, #ff000000, #ff7f7f7f, #ff000000, #80000000 | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/ia_ora.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/ia_ora.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ff000000, #ffeff3f7, #ffffffff, #ffe9e7e3, #ffc7cbce, #ffa0a0a4, #ff000000, #ffffffff, #ff000000, #ffeff3f7, #ffeff3f7, #ffb8bbbe, #ff4965ae, #ffffffff, #ff0000ff, #ffff00ff, #ffeff3f7, #ff000000, #ffffffdc, #ff000000, #80000000 | ||||||
|  | disabled_colors=#ff808080, #ffeff3f7, #ffffffff, #ffe9e7e3, #ffc7cbce, #ffa0a0a4, #ff808080, #ffffffff, #ff808080, #ffeff3f7, #ffeff3f7, #ffb8bbbe, #ff4965ae, #ff808080, #ff0000ff, #ffff00ff, #ffeff3f7, #ff000000, #ffffffdc, #ff000000, #80000000 | ||||||
|  | inactive_colors=#ff000000, #ffeff3f7, #ffffffff, #ffe9e7e3, #ffc7cbce, #ffa0a0a4, #ff000000, #ffffffff, #ff000000, #ffeff3f7, #ffeff3f7, #ffb8bbbe, #ff4965ae, #ffffffff, #ff0000ff, #ffff00ff, #ffeff3f7, #ff000000, #ffffffdc, #ff000000, #80000000 | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/sand.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/sand.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ff000000, #ffffffdc, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ff000000, #ff000000, #ff000000, #ffffffdc, #ffffffdc, #ffe7e4e0, #ff5f5b5d, #fff9f9f9, #ff0986d3, #ffa70b06, #ffffffdc, #ff000000, #ff3f3f36, #ff000000, #80000000 | ||||||
|  | disabled_colors=#ff4a4947, #ffffffdc, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ff4a4947, #ff4a4947, #ff4a4947, #ffffffdc, #ffffffdc, #ffe7e4e0, #ff5f5b5d, #fff9f9f9, #ff0986d3, #ffa70b06, #ffffffdc, #ff000000, #ff3f3f36, #ff000000, #80000000 | ||||||
|  | inactive_colors=#ff000000, #ffffffdc, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ff000000, #ff000000, #ff000000, #ffffffdc, #ffffffdc, #ffe7e4e0, #ff5f5b5d, #fff9f9f9, #ff0986d3, #ffa70b06, #ffffffdc, #ff000000, #ff3f3f36, #ff000000, #80000000 | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/simple.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/simple.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ff000000, #ffefebe7, #ffffffff, #ffcbc7c4, #ff9f9d9a, #ffb8b5b2, #ff000000, #ffffffff, #ff000000, #ffffffff, #ffefebe7, #ffb1aeab, #ff308cc6, #ffffffff, #ff0000ff, #ffff0000, #fff7f5f3, #ff000000, #ffffffdc, #ff000000, #80000000 | ||||||
|  | disabled_colors=#ffbebebe, #ffefebe7, #ffffffff, #ffcbc7c4, #ff9f9d9a, #ffb8b5b2, #ffbebebe, #ffffffff, #ffbebebe, #ffefebe7, #ffefebe7, #ffb1aeab, #ff9f9d9a, #ffffffff, #ff0000ff, #ffff0000, #fff7f5f3, #ff000000, #ffffffdc, #ff000000, #80000000 | ||||||
|  | inactive_colors=#ff000000, #ffefebe7, #ffffffff, #ffcbc7c4, #ff9f9d9a, #ffb8b5b2, #ff000000, #ffffffff, #ff000000, #ffffffff, #ffefebe7, #ffb1aeab, #ff308cc6, #ffffffff, #ff0000ff, #ffff0000, #fff7f5f3, #ff000000, #ffffffdc, #ff000000, #80000000 | ||||||
							
								
								
									
										4
									
								
								scwx-qt/res/qt6ct_colors/waves.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scwx-qt/res/qt6ct_colors/waves.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | [ColorScheme] | ||||||
|  | active_colors=#ffb0b0b0, #ff010b2c, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ffb0b0b0, #ffb0b0b0, #ffb0b0b0, #ff010b2c, #ff010b2c, #ffb0b0b0, #ff302f2e, #ffb0b0b0, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff0a0a0a, #ffffffff, #80b0b0b0 | ||||||
|  | disabled_colors=#ff808080, #ff010b2c, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ff808080, #ff808080, #ff808080, #ff00071d, #ff00071d, #ffb0b0b0, #ff00071d, #ff808080, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff0a0a0a, #ffffffff, #80b0b0b0 | ||||||
|  | inactive_colors=#ffb0b0b0, #ff010b2c, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ffb0b0b0, #ffb0b0b0, #ffb0b0b0, #ff010b2c, #ff010b2c, #ffb0b0b0, #ff302f2e, #ffb0b0b0, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff0a0a0a, #ffffffff, #80b0b0b0 | ||||||
|  | @ -357,6 +357,7 @@ set(HDR_UTIL source/scwx/qt/util/color.hpp | ||||||
|              source/scwx/qt/util/texture_atlas.hpp |              source/scwx/qt/util/texture_atlas.hpp | ||||||
|              source/scwx/qt/util/q_file_buffer.hpp |              source/scwx/qt/util/q_file_buffer.hpp | ||||||
|              source/scwx/qt/util/q_file_input_stream.hpp |              source/scwx/qt/util/q_file_input_stream.hpp | ||||||
|  |              source/scwx/qt/util/qt6ct_palette.hpp | ||||||
|              source/scwx/qt/util/time.hpp |              source/scwx/qt/util/time.hpp | ||||||
|              source/scwx/qt/util/tooltip.hpp) |              source/scwx/qt/util/tooltip.hpp) | ||||||
| set(SRC_UTIL source/scwx/qt/util/color.cpp | set(SRC_UTIL source/scwx/qt/util/color.cpp | ||||||
|  | @ -369,6 +370,7 @@ set(SRC_UTIL source/scwx/qt/util/color.cpp | ||||||
|              source/scwx/qt/util/texture_atlas.cpp |              source/scwx/qt/util/texture_atlas.cpp | ||||||
|              source/scwx/qt/util/q_file_buffer.cpp |              source/scwx/qt/util/q_file_buffer.cpp | ||||||
|              source/scwx/qt/util/q_file_input_stream.cpp |              source/scwx/qt/util/q_file_input_stream.cpp | ||||||
|  |              source/scwx/qt/util/qt6ct_palette.cpp | ||||||
|              source/scwx/qt/util/time.cpp |              source/scwx/qt/util/time.cpp | ||||||
|              source/scwx/qt/util/tooltip.cpp) |              source/scwx/qt/util/tooltip.cpp) | ||||||
| set(HDR_VIEW source/scwx/qt/view/level2_product_view.hpp | set(HDR_VIEW source/scwx/qt/view/level2_product_view.hpp | ||||||
|  |  | ||||||
|  | @ -70,6 +70,7 @@ | ||||||
|         <file>res/palettes/wct/SW.pal</file> |         <file>res/palettes/wct/SW.pal</file> | ||||||
|         <file>res/palettes/wct/VIL.pal</file> |         <file>res/palettes/wct/VIL.pal</file> | ||||||
|         <file>res/palettes/wct/ZDR.pal</file> |         <file>res/palettes/wct/ZDR.pal</file> | ||||||
|  |         <file>res/qt6ct_colors/darker.conf</file> | ||||||
|         <file>res/textures/lines/default-1x7.png</file> |         <file>res/textures/lines/default-1x7.png</file> | ||||||
|         <file>res/textures/lines/test-pattern.png</file> |         <file>res/textures/lines/test-pattern.png</file> | ||||||
|         <file>res/textures/images/cursor-17.png</file> |         <file>res/textures/images/cursor-17.png</file> | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ | ||||||
| #include <scwx/qt/settings/general_settings.hpp> | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| #include <scwx/qt/types/qt_types.hpp> | #include <scwx/qt/types/qt_types.hpp> | ||||||
| #include <scwx/qt/ui/setup/setup_wizard.hpp> | #include <scwx/qt/ui/setup/setup_wizard.hpp> | ||||||
|  | #include <scwx/qt/util/qt6ct_palette.hpp> | ||||||
| #include <scwx/network/cpr.hpp> | #include <scwx/network/cpr.hpp> | ||||||
| #include <scwx/util/environment.hpp> | #include <scwx/util/environment.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
|  | @ -27,6 +28,8 @@ | ||||||
| #include <QStandardPaths> | #include <QStandardPaths> | ||||||
| #include <QStyleHints> | #include <QStyleHints> | ||||||
| #include <QTranslator> | #include <QTranslator> | ||||||
|  | #include <QPalette> | ||||||
|  | #include <QStyle> | ||||||
| 
 | 
 | ||||||
| static const std::string logPrefix_ = "scwx::main"; | static const std::string logPrefix_ = "scwx::main"; | ||||||
| static const auto        logger_    = scwx::util::Logger::Create(logPrefix_); | static const auto        logger_    = scwx::util::Logger::Create(logPrefix_); | ||||||
|  | @ -162,6 +165,15 @@ static void ConfigureTheme(const std::vector<std::string>& args) | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    QGuiApplication::styleHints()->setColorScheme(qtColorScheme); |    QGuiApplication::styleHints()->setColorScheme(qtColorScheme); | ||||||
|  | 
 | ||||||
|  |    if (uiStyle == scwx::qt::types::UiStyle::FusionQt6Ct) | ||||||
|  |    { | ||||||
|  |       auto palette = | ||||||
|  |          std::make_unique<QPalette>(scwx::qt::util::qt6ct::loadColorScheme( | ||||||
|  |             ":res/qt6ct_colors/darker.conf", | ||||||
|  |             QApplication::style()->standardPalette())); | ||||||
|  |       QApplication::setPalette(*palette); | ||||||
|  |    } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void | static void | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ static const std::unordered_map<UiStyle, std::string> qtStyleName_ { | ||||||
|    {UiStyle::Fusion, "Fusion"}, |    {UiStyle::Fusion, "Fusion"}, | ||||||
|    {UiStyle::FusionLight, "Fusion"}, |    {UiStyle::FusionLight, "Fusion"}, | ||||||
|    {UiStyle::FusionDark, "Fusion"}, |    {UiStyle::FusionDark, "Fusion"}, | ||||||
|  |    {UiStyle::FusionQt6Ct, "Fusion"}, | ||||||
|    {UiStyle::Unknown, "?"}}; |    {UiStyle::Unknown, "?"}}; | ||||||
| 
 | 
 | ||||||
| static const std::unordered_map<UiStyle, std::string> uiStyleName_ { | static const std::unordered_map<UiStyle, std::string> uiStyleName_ { | ||||||
|  | @ -22,6 +23,7 @@ static const std::unordered_map<UiStyle, std::string> uiStyleName_ { | ||||||
|    {UiStyle::Fusion, "Fusion"}, |    {UiStyle::Fusion, "Fusion"}, | ||||||
|    {UiStyle::FusionLight, "Fusion Light"}, |    {UiStyle::FusionLight, "Fusion Light"}, | ||||||
|    {UiStyle::FusionDark, "Fusion Dark"}, |    {UiStyle::FusionDark, "Fusion Dark"}, | ||||||
|  |    {UiStyle::FusionQt6Ct, "Fusion with qt6ct Palette"}, | ||||||
|    {UiStyle::Unknown, "?"}}; |    {UiStyle::Unknown, "?"}}; | ||||||
| 
 | 
 | ||||||
| static const std::unordered_map<UiStyle, Qt::ColorScheme> qtColorSchemeMap_ { | static const std::unordered_map<UiStyle, Qt::ColorScheme> qtColorSchemeMap_ { | ||||||
|  | @ -29,6 +31,7 @@ static const std::unordered_map<UiStyle, Qt::ColorScheme> qtColorSchemeMap_ { | ||||||
|    {UiStyle::Fusion, Qt::ColorScheme::Unknown}, |    {UiStyle::Fusion, Qt::ColorScheme::Unknown}, | ||||||
|    {UiStyle::FusionLight, Qt::ColorScheme::Light}, |    {UiStyle::FusionLight, Qt::ColorScheme::Light}, | ||||||
|    {UiStyle::FusionDark, Qt::ColorScheme::Dark}, |    {UiStyle::FusionDark, Qt::ColorScheme::Dark}, | ||||||
|  |    {UiStyle::FusionQt6Ct, Qt::ColorScheme::Unknown}, | ||||||
|    {UiStyle::Unknown, Qt::ColorScheme::Unknown}}; |    {UiStyle::Unknown, Qt::ColorScheme::Unknown}}; | ||||||
| 
 | 
 | ||||||
| SCWX_GET_ENUM(UiStyle, GetUiStyle, uiStyleName_) | SCWX_GET_ENUM(UiStyle, GetUiStyle, uiStyleName_) | ||||||
|  |  | ||||||
|  | @ -26,9 +26,10 @@ enum class UiStyle | ||||||
|    Fusion, |    Fusion, | ||||||
|    FusionLight, |    FusionLight, | ||||||
|    FusionDark, |    FusionDark, | ||||||
|  |    FusionQt6Ct, | ||||||
|    Unknown |    Unknown | ||||||
| }; | }; | ||||||
| typedef scwx::util::Iterator<UiStyle, UiStyle::Default, UiStyle::FusionDark> | typedef scwx::util::Iterator<UiStyle, UiStyle::Default, UiStyle::FusionQt6Ct> | ||||||
|    UiStyleIterator; |    UiStyleIterator; | ||||||
| 
 | 
 | ||||||
| Qt::ColorScheme GetQtColorScheme(UiStyle uiStyle); | Qt::ColorScheme GetQtColorScheme(UiStyle uiStyle); | ||||||
|  |  | ||||||
							
								
								
									
										87
									
								
								scwx-qt/source/scwx/qt/util/qt6ct_palette.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								scwx-qt/source/scwx/qt/util/qt6ct_palette.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,87 @@ | ||||||
|  | /* This code is drawn from qt6ct, and loads qt6ct color palette files.
 | ||||||
|  |  * qt6ct is licensed under BSD-2-Clause below. | ||||||
|  |  * | ||||||
|  |  * Copyright (c) 2020-2024, Ilya Kotov <forkotov02@ya.ru> | ||||||
|  |  * | ||||||
|  |  * Redistribution and use in source and binary forms, with or without | ||||||
|  |  * modification, are permitted provided that the following conditions are | ||||||
|  |  * met: | ||||||
|  |  * | ||||||
|  |  * 1. Redistributions of source code must retain the above copyright | ||||||
|  |  *    notice, this list of conditions and the following disclaimer. | ||||||
|  |  * | ||||||
|  |  * 2. Redistributions in binary form must reproduce the above copyright | ||||||
|  |  *    notice, this list of conditions and the following disclaimer in | ||||||
|  |  *    the documentation and/or other materials provided with the | ||||||
|  |  *    distribution. | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||||
|  |  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||||
|  |  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||||
|  |  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||||
|  |  * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||||
|  |  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||||
|  |  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||||
|  |  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||||
|  |  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||||
|  |  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||||
|  |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include <QPalette> | ||||||
|  | #include <QSettings> | ||||||
|  | 
 | ||||||
|  | namespace scwx | ||||||
|  | { | ||||||
|  | namespace qt | ||||||
|  | { | ||||||
|  | namespace util | ||||||
|  | { | ||||||
|  | namespace qt6ct | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  | QPalette loadColorScheme(const QString &filePath, const QPalette &fallback) | ||||||
|  | { | ||||||
|  |     QPalette customPalette; | ||||||
|  |     QSettings settings(filePath, QSettings::IniFormat); | ||||||
|  |     settings.beginGroup("ColorScheme"); | ||||||
|  |     QStringList activeColors = settings.value("active_colors").toStringList(); | ||||||
|  |     QStringList inactiveColors = settings.value("inactive_colors").toStringList(); | ||||||
|  |     QStringList disabledColors = settings.value("disabled_colors").toStringList(); | ||||||
|  |     settings.endGroup(); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | #if (QT_VERSION >= QT_VERSION_CHECK(6,6,0)) | ||||||
|  |     if(activeColors.count() == QPalette::Accent) | ||||||
|  |         activeColors << activeColors.at(QPalette::Highlight); | ||||||
|  |     if(inactiveColors.count() == QPalette::Accent) | ||||||
|  |         inactiveColors << inactiveColors.at(QPalette::Highlight); | ||||||
|  |     if(disabledColors.count() == QPalette::Accent) | ||||||
|  |         disabledColors << disabledColors.at(QPalette::Highlight); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     if(activeColors.count() >= QPalette::NColorRoles && | ||||||
|  |             inactiveColors.count() >= QPalette::NColorRoles && | ||||||
|  |             disabledColors.count() >= QPalette::NColorRoles) | ||||||
|  |     { | ||||||
|  |         for (int i = 0; i < QPalette::NColorRoles; i++) | ||||||
|  |         { | ||||||
|  |             QPalette::ColorRole role = QPalette::ColorRole(i); | ||||||
|  |             customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i))); | ||||||
|  |             customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i))); | ||||||
|  |             customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i))); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     else | ||||||
|  |     { | ||||||
|  |         customPalette = fallback; //load fallback palette
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return customPalette; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | } // namespace qt6ct
 | ||||||
|  | } // namespace util
 | ||||||
|  | } // namespace qt
 | ||||||
|  | } // namespace scwx
 | ||||||
							
								
								
									
										50
									
								
								scwx-qt/source/scwx/qt/util/qt6ct_palette.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								scwx-qt/source/scwx/qt/util/qt6ct_palette.hpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | /* This code is drawn from qt6ct, and loads qt6ct color palette files.
 | ||||||
|  |  * qt6ct is licensed under BSD-2-Clause below. | ||||||
|  |  * | ||||||
|  |  * Copyright (c) 2020-2024, Ilya Kotov <forkotov02@ya.ru> | ||||||
|  |  * | ||||||
|  |  * Redistribution and use in source and binary forms, with or without | ||||||
|  |  * modification, are permitted provided that the following conditions are | ||||||
|  |  * met: | ||||||
|  |  * | ||||||
|  |  * 1. Redistributions of source code must retain the above copyright | ||||||
|  |  *    notice, this list of conditions and the following disclaimer. | ||||||
|  |  * | ||||||
|  |  * 2. Redistributions in binary form must reproduce the above copyright | ||||||
|  |  *    notice, this list of conditions and the following disclaimer in | ||||||
|  |  *    the documentation and/or other materials provided with the | ||||||
|  |  *    distribution. | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||||
|  |  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||||
|  |  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||||
|  |  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||||
|  |  * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||||
|  |  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||||
|  |  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||||
|  |  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||||
|  |  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||||
|  |  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||||
|  |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include <QString> | ||||||
|  | #include <QPalette> | ||||||
|  | 
 | ||||||
|  | namespace scwx | ||||||
|  | { | ||||||
|  | namespace qt | ||||||
|  | { | ||||||
|  | namespace util | ||||||
|  | { | ||||||
|  | namespace qt6ct | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  | QPalette loadColorScheme(const QString &filePath, const QPalette &fallback); | ||||||
|  | 
 | ||||||
|  | } // namespace qt6ct
 | ||||||
|  | } // namespace util
 | ||||||
|  | } // namespace qt
 | ||||||
|  | } // namespace scwx
 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AdenKoperczak
						AdenKoperczak