Skins: Unify lightness enum

This commit is contained in:
Peter Hartmann 2023-06-27 15:15:27 +02:00 committed by uwerat
parent b84593a6f4
commit 98158b2a4b
7 changed files with 29 additions and 30 deletions

View File

@ -946,8 +946,8 @@ void Editor::setupVirtualKeyboard()
setPadding( Q::Panel, 8 ); setPadding( Q::Panel, 8 );
} }
QskFluent2Theme::QskFluent2Theme( Theme lightness ) QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme )
: QskFluent2Theme( lightness, : QskFluent2Theme( colorScheme,
{ // default Fluent accent colors: { // default Fluent accent colors:
0xff98ecfe, 0xff98ecfe,
0xff60ccfe, 0xff60ccfe,
@ -960,10 +960,10 @@ QskFluent2Theme::QskFluent2Theme( Theme lightness )
{ {
} }
QskFluent2Theme::QskFluent2Theme( Theme theme, QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme,
const std::array< QRgb, NumAccentColors >& accentColors ) const std::array< QRgb, NumAccentColors >& accentColors )
{ {
if( theme == Light ) if( colorScheme == QskSkin::Light )
{ {
// Fill color: // Fill color:
@ -1065,7 +1065,7 @@ QskFluent2Theme::QskFluent2Theme( Theme theme,
// ### should actually be drawn twice with different values: // ### should actually be drawn twice with different values:
shadow.dialog = { QskShadowMetrics( 0, 21, QPointF( 0, 2 ) ), rgbGray( 0, 0.1474 ) }; shadow.dialog = { QskShadowMetrics( 0, 21, QPointF( 0, 2 ) ), rgbGray( 0, 0.1474 ) };
} }
else if( theme == Dark ) else if( colorScheme == QskSkin::Dark )
{ {
// Fill color: // Fill color:

View File

@ -18,12 +18,6 @@
class QSK_FLUENT2_EXPORT QskFluent2Theme class QSK_FLUENT2_EXPORT QskFluent2Theme
{ {
public: public:
enum Theme
{
Light,
Dark
};
enum AccentColors enum AccentColors
{ {
AccentLight3, AccentLight3,
@ -37,8 +31,8 @@ class QSK_FLUENT2_EXPORT QskFluent2Theme
NumAccentColors NumAccentColors
}; };
QskFluent2Theme( Theme ); QskFluent2Theme( QskSkin::ColorScheme );
QskFluent2Theme( Theme, const std::array< QRgb, NumAccentColors >& ); QskFluent2Theme( QskSkin::ColorScheme, const std::array< QRgb, NumAccentColors >& );
typedef std::array< QRgb, 2 > BorderGradient; typedef std::array< QRgb, 2 > BorderGradient;

View File

@ -27,12 +27,12 @@ QskSkin* QskFluent2SkinFactory::createSkin( const QString& skinName )
{ {
if ( QString::compare( skinName, fluent2LightSkinName, Qt::CaseInsensitive ) == 0 ) if ( QString::compare( skinName, fluent2LightSkinName, Qt::CaseInsensitive ) == 0 )
{ {
QskFluent2Theme theme( QskFluent2Theme::Light ); QskFluent2Theme theme( QskSkin::Light );
return new QskFluent2Skin( theme ); return new QskFluent2Skin( theme );
} }
else if ( QString::compare( skinName, fluent2DarkSkinName, Qt::CaseInsensitive ) == 0 ) else if ( QString::compare( skinName, fluent2DarkSkinName, Qt::CaseInsensitive ) == 0 )
{ {
QskFluent2Theme theme( QskFluent2Theme::Dark ); QskFluent2Theme theme( QskSkin::Dark );
return new QskFluent2Skin( theme ); return new QskFluent2Skin( theme );
} }

View File

@ -54,6 +54,7 @@
#include <QGuiApplication> #include <QGuiApplication>
#include <QScreen> #include <QScreen>
#include <QStyleHints>
static const int qskDuration = 150; static const int qskDuration = 150;
@ -1192,8 +1193,8 @@ void Editor::setupSubWindow()
} }
QskMaterial3Theme::QskMaterial3Theme( Lightness lightness ) QskMaterial3Theme::QskMaterial3Theme( QskSkin::ColorScheme colorScheme )
: QskMaterial3Theme( lightness, : QskMaterial3Theme( colorScheme,
{ // default Material colors: { // default Material colors:
0xff6750A4, 0xff6750A4,
0xff625B71, 0xff625B71,
@ -1205,11 +1206,11 @@ QskMaterial3Theme::QskMaterial3Theme( Lightness lightness )
{ {
} }
QskMaterial3Theme::QskMaterial3Theme( Lightness lightness, QskMaterial3Theme::QskMaterial3Theme( QskSkin::ColorScheme colorScheme,
std::array< QskHctColor, NumPaletteTypes > palettes ) std::array< QskHctColor, NumPaletteTypes > palettes )
: m_palettes( palettes ) : m_palettes( palettes )
{ {
if ( lightness == Light ) if ( colorScheme == QskSkin::Light )
{ {
primary = m_palettes[ Primary ].toned( 40 ).rgb(); primary = m_palettes[ Primary ].toned( 40 ).rgb();
onPrimary = m_palettes[ Primary ].toned( 100 ).rgb(); onPrimary = m_palettes[ Primary ].toned( 100 ).rgb();
@ -1243,7 +1244,7 @@ QskMaterial3Theme::QskMaterial3Theme( Lightness lightness,
shadow = m_palettes[ Neutral ].toned( 0 ).rgb(); shadow = m_palettes[ Neutral ].toned( 0 ).rgb();
} }
else if ( lightness == Dark ) else if ( colorScheme == QskSkin::Dark )
{ {
primary = m_palettes[ Primary ].toned( 80 ).rgb(); primary = m_palettes[ Primary ].toned( 80 ).rgb();
onPrimary = m_palettes[ Primary ].toned( 20 ).rgb(); onPrimary = m_palettes[ Primary ].toned( 20 ).rgb();

View File

@ -18,12 +18,6 @@
class QSK_MATERIAL3_EXPORT QskMaterial3Theme class QSK_MATERIAL3_EXPORT QskMaterial3Theme
{ {
public: public:
enum Lightness
{
Light,
Dark
};
enum PaletteType enum PaletteType
{ {
Primary, Primary,
@ -36,8 +30,8 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Theme
NumPaletteTypes NumPaletteTypes
}; };
QskMaterial3Theme( Lightness ); QskMaterial3Theme( QskSkin::ColorScheme );
QskMaterial3Theme( Lightness, std::array< QskHctColor, NumPaletteTypes > ); QskMaterial3Theme( QskSkin::ColorScheme, std::array< QskHctColor, NumPaletteTypes > );
QRgb primary; QRgb primary;
QRgb primary8; // ### rename to primaryHovered or so? QRgb primary8; // ### rename to primaryHovered or so?

View File

@ -27,12 +27,12 @@ QskSkin* QskMaterial3SkinFactory::createSkin( const QString& skinName )
{ {
if ( QString::compare( skinName, materialLightSkinName, Qt::CaseInsensitive ) == 0 ) if ( QString::compare( skinName, materialLightSkinName, Qt::CaseInsensitive ) == 0 )
{ {
QskMaterial3Theme theme( QskMaterial3Theme::Light ); QskMaterial3Theme theme( QskSkin::Light );
return new QskMaterial3Skin( theme ); return new QskMaterial3Skin( theme );
} }
else if ( QString::compare( skinName, materialDarkSkinName, Qt::CaseInsensitive ) == 0 ) else if ( QString::compare( skinName, materialDarkSkinName, Qt::CaseInsensitive ) == 0 )
{ {
QskMaterial3Theme theme( QskMaterial3Theme::Dark ); QskMaterial3Theme theme( QskSkin::Dark );
return new QskMaterial3Skin( theme ); return new QskMaterial3Skin( theme );
} }

View File

@ -46,6 +46,16 @@ class QSK_EXPORT QskSkin : public QObject
Q_ENUM( SkinFontRole ) 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( QObject* parent = nullptr );
~QskSkin() override; ~QskSkin() override;