diff --git a/examples/gallery/icons/airport_shuttle.svg b/examples/gallery/icons/airport_shuttle.svg
index 429b665d..77c8c91c 100644
--- a/examples/gallery/icons/airport_shuttle.svg
+++ b/examples/gallery/icons/airport_shuttle.svg
@@ -1,4 +1,4 @@
diff --git a/examples/gallery/icons/flight.svg b/examples/gallery/icons/flight.svg
index fac609e6..e58b8009 100644
--- a/examples/gallery/icons/flight.svg
+++ b/examples/gallery/icons/flight.svg
@@ -1,4 +1,4 @@
diff --git a/examples/gallery/icons/local_pizza.svg b/examples/gallery/icons/local_pizza.svg
index 37f91bb0..64f80fc5 100644
--- a/examples/gallery/icons/local_pizza.svg
+++ b/examples/gallery/icons/local_pizza.svg
@@ -1,4 +1,4 @@
diff --git a/examples/gallery/icons/qvg/airport_shuttle.qvg b/examples/gallery/icons/qvg/airport_shuttle.qvg
index d6e0d203..b52ec830 100644
Binary files a/examples/gallery/icons/qvg/airport_shuttle.qvg and b/examples/gallery/icons/qvg/airport_shuttle.qvg differ
diff --git a/examples/gallery/icons/qvg/flight.qvg b/examples/gallery/icons/qvg/flight.qvg
index fc10d775..d31dd2de 100644
Binary files a/examples/gallery/icons/qvg/flight.qvg and b/examples/gallery/icons/qvg/flight.qvg differ
diff --git a/examples/gallery/icons/qvg/local_pizza.qvg b/examples/gallery/icons/qvg/local_pizza.qvg
index 45232c20..61967c8f 100644
Binary files a/examples/gallery/icons/qvg/local_pizza.qvg and b/examples/gallery/icons/qvg/local_pizza.qvg differ
diff --git a/examples/gallery/icons/qvg/sports_soccer.qvg b/examples/gallery/icons/qvg/sports_soccer.qvg
index ff92937b..52557da2 100644
Binary files a/examples/gallery/icons/qvg/sports_soccer.qvg and b/examples/gallery/icons/qvg/sports_soccer.qvg differ
diff --git a/examples/gallery/icons/sports_soccer.svg b/examples/gallery/icons/sports_soccer.svg
index 0ee97398..5aabceb6 100644
--- a/examples/gallery/icons/sports_soccer.svg
+++ b/examples/gallery/icons/sports_soccer.svg
@@ -1,4 +1,4 @@
diff --git a/skins/material3/QskMaterial3Skin.cpp b/skins/material3/QskMaterial3Skin.cpp
index 20509e74..ffde2ef5 100644
--- a/skins/material3/QskMaterial3Skin.cpp
+++ b/skins/material3/QskMaterial3Skin.cpp
@@ -439,9 +439,9 @@ void Editor::setupSegmentedBar()
{
// Container
- setGradient( Q::Panel, Qt::transparent ); // ### background
+ setGradient( Q::Panel, Qt::transparent );
setPadding( Q::Panel, 0 );
- setSpacing( Q::Panel, 8_dp ); // ### messes up the cursor
+ setSpacing( Q::Panel, 8_dp );
setBoxShape( Q::Panel, 100, Qt::RelativeSize );
@@ -458,8 +458,9 @@ void Editor::setupSegmentedBar()
setStrutSize( Q::Segment | A::Horizontal, segmentStrutSize );
setStrutSize( Q::Segment | A::Vertical, segmentStrutSize.transposed() );
- setGradient( Q::Segment, Qt::transparent ); // ### background
- setPadding( Q::Segment, 0 );
+ setGradient( Q::Segment, Qt::transparent );
+ setPadding( Q::Segment | A::Horizontal, { 12_dp, 0, 12_dp, 0 } );
+ setPadding( Q::Segment | A::Vertical, { 0, 12_dp, 0, 12_dp } );
}
{
@@ -469,7 +470,7 @@ void Editor::setupSegmentedBar()
setStrutSize( Q::Separator | A::Vertical, segmentStrutSize.height(), 1_dp );
setPadding( Q::Separator, 0 );
setGradient( Q::Separator, m_pal.outline );
- setColor( Q::Separator | Q::Disabled, m_pal.onSurface38 );
+ setColor( Q::Separator | Q::Disabled, m_pal.onSurface12 );
}
{
@@ -492,7 +493,6 @@ void Editor::setupSegmentedBar()
setGradient( Q::Cursor, m_pal.secondaryContainer );
setGradient( Q::Cursor | Q::Disabled, m_pal.onSurface12 );
- setAnimation( Q::Cursor | A::Metric | A::Position, 100 );
}
{
@@ -513,6 +513,10 @@ void Editor::setupSegmentedBar()
setPadding( Q::Graphic, 0_dp );
setStrutSize( Q::Graphic, { 18_dp, 18_dp } );
+
+ setGraphicRole( Q::Graphic, QskMaterial3Skin::GraphicRoleOnSurface );
+ setGraphicRole( Q::Graphic | Q::Selected, QskMaterial3Skin::GraphicRoleOnSecondaryContainer );
+ setGraphicRole( Q::Graphic | Q::Disabled, QskMaterial3Skin::GraphicRoleOnSurface38 );
}
}
@@ -1116,10 +1120,22 @@ void QskMaterial3Skin::setupGraphicFilters( const QskMaterial3Theme& palette )
onPrimaryFilter.addColorSubstitution( Qt::white, palette.onPrimary );
setGraphicFilter( GraphicRoleOnPrimary, onPrimaryFilter );
+ QskColorFilter onSecondaryContainerFilter;
+ onSecondaryContainerFilter.addColorSubstitution( Qt::white, palette.onSecondaryContainer );
+ setGraphicFilter( GraphicRoleOnSecondaryContainer, onSecondaryContainerFilter );
+
QskColorFilter onErrorFilter;
onErrorFilter.addColorSubstitution( Qt::white, palette.onError );
setGraphicFilter( GraphicRoleOnError, onErrorFilter );
+ QskColorFilter onSurfaceFilter;
+ onSurfaceFilter.addColorSubstitution( Qt::white, palette.onSurface );
+ setGraphicFilter( GraphicRoleOnSurface, onSurfaceFilter );
+
+ QskColorFilter onSurfaceFilter38;
+ onSurfaceFilter38.addColorSubstitution( Qt::white, palette.onSurface38 );
+ setGraphicFilter( GraphicRoleOnSurface38, onSurfaceFilter38 );
+
QskColorFilter surfaceFilter;
surfaceFilter.addColorSubstitution( Qt::white, palette.surface );
setGraphicFilter( GraphicRoleSurface, surfaceFilter );
diff --git a/skins/material3/QskMaterial3Skin.h b/skins/material3/QskMaterial3Skin.h
index a0299853..1c35b50b 100644
--- a/skins/material3/QskMaterial3Skin.h
+++ b/skins/material3/QskMaterial3Skin.h
@@ -126,6 +126,9 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Skin : public QskSkin
{
GraphicRoleOnError,
GraphicRoleOnPrimary,
+ GraphicRoleOnSecondaryContainer,
+ GraphicRoleOnSurface,
+ GraphicRoleOnSurface38,
GraphicRoleSurface,
};
diff --git a/skins/material3/icons/qvg/segmented-button-check.qvg b/skins/material3/icons/qvg/segmented-button-check.qvg
index 343402a8..b9c74eea 100644
Binary files a/skins/material3/icons/qvg/segmented-button-check.qvg and b/skins/material3/icons/qvg/segmented-button-check.qvg differ