From 7cbf64106688e8fdd8680ae56cbc940342c5fdd9 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 28 Oct 2024 08:57:16 +0100 Subject: [PATCH 1/3] unused signal removed --- src/controls/QskTextInput.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controls/QskTextInput.h b/src/controls/QskTextInput.h index c1a9710d..de64d109 100644 --- a/src/controls/QskTextInput.h +++ b/src/controls/QskTextInput.h @@ -172,7 +172,6 @@ class QSK_EXPORT QskTextInput : public QskControl void textEdited( const QString& ); void descriptionChanged( const QString& ); - void textOptionsChanged(); void fontRoleChanged(); void alignmentChanged(); From e15f1679781d64f243c3205914896b74ec72d024 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 28 Oct 2024 09:26:22 +0100 Subject: [PATCH 2/3] QskTextInput::wrapMode added --- src/controls/QskTextInput.cpp | 15 +++++++++++++++ src/controls/QskTextInput.h | 10 +++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/controls/QskTextInput.cpp b/src/controls/QskTextInput.cpp index b204cbd8..a4982bcc 100644 --- a/src/controls/QskTextInput.cpp +++ b/src/controls/QskTextInput.cpp @@ -59,6 +59,9 @@ static inline void qskBindSignals( QObject::connect( wrappedInput, &QQuickTextInput::maximumLengthChanged, input, &QskTextInput::maximumLengthChanged ); + QObject::connect( wrappedInput, &QQuickTextInput::wrapModeChanged, + input, [ input ] { Q_EMIT input->wrapModeChanged( input->wrapMode() ); } ); + QObject::connect( wrappedInput, &QQuickTextInput::echoModeChanged, input, [ input ] { Q_EMIT input->echoModeChanged( input->echoMode() ); } ); @@ -615,6 +618,18 @@ Qt::Alignment QskTextInput::alignment() const return alignmentHint( Text, Qt::AlignLeft | Qt::AlignTop ); } +void QskTextInput::setWrapMode( QskTextOptions::WrapMode wrapMode ) +{ + m_data->textInput->setWrapMode( + static_cast< QQuickTextInput::WrapMode >( wrapMode ) ); +} + +QskTextOptions::WrapMode QskTextInput::wrapMode() const +{ + return static_cast< QskTextOptions::WrapMode >( + m_data->textInput->wrapMode() ); +} + QFont QskTextInput::font() const { return effectiveFont( QskTextInput::Text ); diff --git a/src/controls/QskTextInput.h b/src/controls/QskTextInput.h index de64d109..3aae8c05 100644 --- a/src/controls/QskTextInput.h +++ b/src/controls/QskTextInput.h @@ -7,6 +7,7 @@ #define QSK_TEXT_INPUT_H #include "QskControl.h" +#include "QskTextOptions.h" class QValidator; class QskFontRole; @@ -26,7 +27,10 @@ class QSK_EXPORT QskTextInput : public QskControl Q_PROPERTY( QFont font READ font ) Q_PROPERTY( Qt::Alignment alignment READ alignment - WRITE setAlignment NOTIFY alignmentChanged ) + WRITE setAlignment RESET resetAlignment NOTIFY alignmentChanged ) + + Q_PROPERTY( QskTextOptions::WrapMode wrapMode READ wrapMode + WRITE setWrapMode NOTIFY wrapModeChanged ) Q_PROPERTY( ActivationModes activationModes READ activationModes WRITE setActivationModes NOTIFY activationModesChanged ) @@ -102,6 +106,9 @@ class QSK_EXPORT QskTextInput : public QskControl void resetAlignment(); Qt::Alignment alignment() const; + void setWrapMode( QskTextOptions::WrapMode ); + QskTextOptions::WrapMode wrapMode() const; + void setActivationModes( ActivationModes ); ActivationModes activationModes() const; @@ -174,6 +181,7 @@ class QSK_EXPORT QskTextInput : public QskControl void fontRoleChanged(); void alignmentChanged(); + void wrapModeChanged( QskTextOptions::WrapMode ); void overwriteModeChanged( bool ); void maximumLengthChanged( int ); From 7402a145ec35085f9006bafe3656f24988e1cfdd Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Mon, 28 Oct 2024 15:40:09 +0100 Subject: [PATCH 3/3] F2 slider: Get rid of Halo subcontrol (#456) We can do with a gradient on the handle. --- designsystems/fluent2/QskFluent2Skin.cpp | 46 +++++++++++++----------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/designsystems/fluent2/QskFluent2Skin.cpp b/designsystems/fluent2/QskFluent2Skin.cpp index 3b2970f7..5455b3f4 100644 --- a/designsystems/fluent2/QskFluent2Skin.cpp +++ b/designsystems/fluent2/QskFluent2Skin.cpp @@ -1445,11 +1445,11 @@ void Editor::setupSliderMetrics() setBoxShape( Q::Handle, 100, Qt::RelativeSize ); setBoxBorderMetrics( Q::Handle, 1_px ); - setStrutSize( Q::Halo, { 12_px, 12_px } ); - setBoxShape( Q::Halo, 100, Qt::RelativeSize ); - - setStrutSize( Q::Halo | Q::Hovered, { 14_px, 14_px } ); - setStrutSize( Q::Halo | Q::Pressed, { 10_px, 10_px } ); + // set size of the outer ring to be used in setupSliderColors(): + setPadding( Q::Handle, 5_px ); + setPadding( Q::Handle | Q::Hovered, 4_px ); + setPadding( Q::Handle | Q::Pressed, 6_px ); + setPadding( Q::Handle | Q::Disabled, 6_px ); } void Editor::setupSliderColors( @@ -1460,41 +1460,47 @@ void Editor::setupSliderColors( const auto& pal = theme.palette; + const auto outerHandleColor = pal.fillColor.controlSolid.defaultColor; + setBoxBorderGradient( Q::Handle, pal.elevation.circle.border, outerHandleColor ); + + for ( auto state : { A::NoState, Q::Hovered, Q::Pressed, Q::Disabled } ) { - const auto handleColor = pal.fillColor.controlSolid.defaultColor; + QRgb grooveColor, fillColor, innerHandleColor; - setGradient( Q::Handle, handleColor ); - setBoxBorderGradient( Q::Handle, pal.elevation.circle.border, handleColor ); - } - - for ( auto state : { A::NoState, Q::Pressed, Q::Disabled } ) - { - QRgb grooveColor, fillColor, haloColor; - - if ( state == A::NoState ) + if ( state == A::NoState || state == Q::Hovered ) { grooveColor = pal.fillColor.controlStrong.defaultColor; fillColor = pal.fillColor.accent.defaultColor; - haloColor = fillColor; + innerHandleColor = fillColor; } else if ( state == Q::Pressed ) { grooveColor = pal.fillColor.controlStrong.defaultColor; fillColor = pal.fillColor.accent.defaultColor; - haloColor = pal.fillColor.accent.tertiary; + innerHandleColor = pal.fillColor.accent.tertiary; } else if ( state == Q::Disabled ) { grooveColor = pal.fillColor.controlStrong.disabled; fillColor = pal.fillColor.accent.disabled; - haloColor = grooveColor; + innerHandleColor = grooveColor; } grooveColor = rgbSolid( grooveColor, pal.background.solid.base ); setGradient( Q::Groove | section | state, grooveColor ); - setGradient( Q::Fill | section | state, fillColor ); - setGradient( Q::Halo | section | state, haloColor ); + + { + const auto handleWidth = strutSize( Q::Handle ).width(); + const auto outerRingWidth = padding( Q::Handle | state ).left(); + const auto stop = ( handleWidth - 2 * outerRingWidth ) / handleWidth; + + QskGradient handleGradient( { { 0.0, innerHandleColor }, { stop, innerHandleColor }, + { stop, outerHandleColor }, { 1.0, outerHandleColor } } ); + handleGradient.setDirection( QskGradient::Radial ); + + setGradient( Q::Handle | section | state, handleGradient ); + } } }