From 33980a58879b8cf6b6fec3633bbab5e1eb263bb2 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 25 Oct 2024 18:52:02 +0200 Subject: [PATCH] M3 radiobox setup simplified --- designsystems/material3/QskMaterial3Skin.cpp | 30 ++++---------------- designsystems/material3/QskMaterial3Skin.h | 1 + 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/designsystems/material3/QskMaterial3Skin.cpp b/designsystems/material3/QskMaterial3Skin.cpp index c5278146..5fe6ef31 100644 --- a/designsystems/material3/QskMaterial3Skin.cpp +++ b/designsystems/material3/QskMaterial3Skin.cpp @@ -501,31 +501,10 @@ void Editor::setupRadioBox() setShadowMetrics( aspect, { 10_dp, 0 } ); - QRgb rgb; - - if ( state1 == Q::Hovered ) - { - rgb = ( state2 == Q::Selected ) ? m_pal.primary8 : m_pal.onSurface8; - rgb = stateLayerColor( rgb, m_pal.hoverOpacity ); - - setShadowColor( aspect, rgb ); - } - else if ( state1 == Q::Focused ) - { - rgb = ( state2 == Q::Selected ) ? m_pal.primary12 : m_pal.onSurface12; - rgb = stateLayerColor( rgb, m_pal.focusOpacity ); - - setShadowColor( aspect, rgb ); - } - else - { - rgb = ( state2 == Q::Selected ) ? m_pal.onSurface12 : m_pal.primary12; - rgb = stateLayerColor( rgb, m_pal.pressedOpacity ); - - setShadowColor( aspect, rgb ); - setShadowColor( aspect | Q::Focused, rgb ); - } + auto rgb = ( state2 == Q::Selected ) ? m_pal.primary : m_pal.onSurface; + rgb = stateLayerColor( rgb, m_pal.stateOpacity( state1 ) ); + setShadowColor( aspect, rgb ); } } @@ -1518,6 +1497,9 @@ qreal QskMaterial3Theme::stateOpacity( int state ) const if ( state == QskControl::Focused ) return focusOpacity; + if ( state == QskControl::Disabled ) + return disabledOpacity; + return state ? pressedOpacity : 0.0; } diff --git a/designsystems/material3/QskMaterial3Skin.h b/designsystems/material3/QskMaterial3Skin.h index c51b3a7d..b2790e02 100644 --- a/designsystems/material3/QskMaterial3Skin.h +++ b/designsystems/material3/QskMaterial3Skin.h @@ -92,6 +92,7 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Theme const qreal focusOpacity = 0.12; const qreal pressedOpacity = 0.12; const qreal draggedOpacity = 0.16; + const qreal disabledOpacity = 0.38; qreal stateOpacity( int state ) const;