Merge branch 'master' into features/slider

This commit is contained in:
Uwe Rathmann 2024-10-28 15:44:39 +01:00
commit 177e929dbb
3 changed files with 50 additions and 22 deletions

View File

@ -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 );
}
}
}

View File

@ -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 );

View File

@ -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;
@ -172,9 +179,9 @@ class QSK_EXPORT QskTextInput : public QskControl
void textEdited( const QString& );
void descriptionChanged( const QString& );
void textOptionsChanged();
void fontRoleChanged();
void alignmentChanged();
void wrapModeChanged( QskTextOptions::WrapMode );
void overwriteModeChanged( bool );
void maximumLengthChanged( int );