diff --git a/skins/fluent2/QskFluent2Skin.cpp b/skins/fluent2/QskFluent2Skin.cpp index cb960022..f589e83a 100644 --- a/skins/fluent2/QskFluent2Skin.cpp +++ b/skins/fluent2/QskFluent2Skin.cpp @@ -946,8 +946,8 @@ void Editor::setupVirtualKeyboard() setPadding( Q::Panel, 8 ); } -QskFluent2Theme::QskFluent2Theme( Theme lightness ) - : QskFluent2Theme( lightness, +QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme ) + : QskFluent2Theme( colorScheme, { // default Fluent accent colors: 0xff98ecfe, 0xff60ccfe, @@ -960,10 +960,10 @@ QskFluent2Theme::QskFluent2Theme( Theme lightness ) { } -QskFluent2Theme::QskFluent2Theme( Theme theme, +QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme, const std::array< QRgb, NumAccentColors >& accentColors ) { - if( theme == Light ) + if( colorScheme == QskSkin::Light ) { // Fill color: @@ -1065,7 +1065,7 @@ QskFluent2Theme::QskFluent2Theme( Theme theme, // ### should actually be drawn twice with different values: shadow.dialog = { QskShadowMetrics( 0, 21, QPointF( 0, 2 ) ), rgbGray( 0, 0.1474 ) }; } - else if( theme == Dark ) + else if( colorScheme == QskSkin::Dark ) { // Fill color: diff --git a/skins/fluent2/QskFluent2Skin.h b/skins/fluent2/QskFluent2Skin.h index 034f0751..826eee34 100644 --- a/skins/fluent2/QskFluent2Skin.h +++ b/skins/fluent2/QskFluent2Skin.h @@ -18,12 +18,6 @@ class QSK_FLUENT2_EXPORT QskFluent2Theme { public: - enum Theme - { - Light, - Dark - }; - enum AccentColors { AccentLight3, @@ -37,8 +31,8 @@ class QSK_FLUENT2_EXPORT QskFluent2Theme NumAccentColors }; - QskFluent2Theme( Theme ); - QskFluent2Theme( Theme, const std::array< QRgb, NumAccentColors >& ); + QskFluent2Theme( QskSkin::ColorScheme ); + QskFluent2Theme( QskSkin::ColorScheme, const std::array< QRgb, NumAccentColors >& ); typedef std::array< QRgb, 2 > BorderGradient; diff --git a/skins/fluent2/QskFluent2SkinFactory.cpp b/skins/fluent2/QskFluent2SkinFactory.cpp index 99cfaf55..4d015c4b 100644 --- a/skins/fluent2/QskFluent2SkinFactory.cpp +++ b/skins/fluent2/QskFluent2SkinFactory.cpp @@ -27,12 +27,12 @@ QskSkin* QskFluent2SkinFactory::createSkin( const QString& skinName ) { if ( QString::compare( skinName, fluent2LightSkinName, Qt::CaseInsensitive ) == 0 ) { - QskFluent2Theme theme( QskFluent2Theme::Light ); + QskFluent2Theme theme( QskSkin::Light ); return new QskFluent2Skin( theme ); } else if ( QString::compare( skinName, fluent2DarkSkinName, Qt::CaseInsensitive ) == 0 ) { - QskFluent2Theme theme( QskFluent2Theme::Dark ); + QskFluent2Theme theme( QskSkin::Dark ); return new QskFluent2Skin( theme ); } diff --git a/skins/material3/QskMaterial3Skin.cpp b/skins/material3/QskMaterial3Skin.cpp index b2c9e1b2..8f456dcf 100644 --- a/skins/material3/QskMaterial3Skin.cpp +++ b/skins/material3/QskMaterial3Skin.cpp @@ -54,6 +54,7 @@ #include #include +#include static const int qskDuration = 150; @@ -1192,8 +1193,8 @@ void Editor::setupSubWindow() } -QskMaterial3Theme::QskMaterial3Theme( Lightness lightness ) - : QskMaterial3Theme( lightness, +QskMaterial3Theme::QskMaterial3Theme( QskSkin::ColorScheme colorScheme ) + : QskMaterial3Theme( colorScheme, { // default Material colors: 0xff6750A4, 0xff625B71, @@ -1205,11 +1206,11 @@ QskMaterial3Theme::QskMaterial3Theme( Lightness lightness ) { } -QskMaterial3Theme::QskMaterial3Theme( Lightness lightness, +QskMaterial3Theme::QskMaterial3Theme( QskSkin::ColorScheme colorScheme, std::array< QskHctColor, NumPaletteTypes > palettes ) : m_palettes( palettes ) { - if ( lightness == Light ) + if ( colorScheme == QskSkin::Light ) { primary = m_palettes[ Primary ].toned( 40 ).rgb(); onPrimary = m_palettes[ Primary ].toned( 100 ).rgb(); @@ -1243,7 +1244,7 @@ QskMaterial3Theme::QskMaterial3Theme( Lightness lightness, shadow = m_palettes[ Neutral ].toned( 0 ).rgb(); } - else if ( lightness == Dark ) + else if ( colorScheme == QskSkin::Dark ) { primary = m_palettes[ Primary ].toned( 80 ).rgb(); onPrimary = m_palettes[ Primary ].toned( 20 ).rgb(); diff --git a/skins/material3/QskMaterial3Skin.h b/skins/material3/QskMaterial3Skin.h index f6fda892..ce36e9bd 100644 --- a/skins/material3/QskMaterial3Skin.h +++ b/skins/material3/QskMaterial3Skin.h @@ -18,12 +18,6 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Theme { public: - enum Lightness - { - Light, - Dark - }; - enum PaletteType { Primary, @@ -36,8 +30,8 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Theme NumPaletteTypes }; - QskMaterial3Theme( Lightness ); - QskMaterial3Theme( Lightness, std::array< QskHctColor, NumPaletteTypes > ); + QskMaterial3Theme( QskSkin::ColorScheme ); + QskMaterial3Theme( QskSkin::ColorScheme, std::array< QskHctColor, NumPaletteTypes > ); QRgb primary; QRgb primary8; // ### rename to primaryHovered or so? diff --git a/skins/material3/QskMaterial3SkinFactory.cpp b/skins/material3/QskMaterial3SkinFactory.cpp index cb08a5c6..f65f669c 100644 --- a/skins/material3/QskMaterial3SkinFactory.cpp +++ b/skins/material3/QskMaterial3SkinFactory.cpp @@ -27,12 +27,12 @@ QskSkin* QskMaterial3SkinFactory::createSkin( const QString& skinName ) { if ( QString::compare( skinName, materialLightSkinName, Qt::CaseInsensitive ) == 0 ) { - QskMaterial3Theme theme( QskMaterial3Theme::Light ); + QskMaterial3Theme theme( QskSkin::Light ); return new QskMaterial3Skin( theme ); } else if ( QString::compare( skinName, materialDarkSkinName, Qt::CaseInsensitive ) == 0 ) { - QskMaterial3Theme theme( QskMaterial3Theme::Dark ); + QskMaterial3Theme theme( QskSkin::Dark ); return new QskMaterial3Skin( theme ); } diff --git a/src/controls/QskSkin.h b/src/controls/QskSkin.h index 982ed2a3..b02facbb 100644 --- a/src/controls/QskSkin.h +++ b/src/controls/QskSkin.h @@ -46,6 +46,16 @@ class QSK_EXPORT QskSkin : public QObject Q_ENUM( SkinFontRole ) +#if 1 + // Use Qt::ColorScheme once minimum version is Qt 6.5 + enum ColorScheme + { + Unknown, + Light, + Dark + }; +#endif + QskSkin( QObject* parent = nullptr ); ~QskSkin() override;