text input: Introduce Selected state and rename Text
This commit is contained in:
parent
525ca3bd0e
commit
773ec5dcfe
|
@ -1773,8 +1773,8 @@ void Editor::setupTextInputMetrics()
|
|||
|
||||
setBoxShape( Q::Panel, 3_px );
|
||||
|
||||
setAlignment( Q::Text, Qt::AlignLeft | Qt::AlignVCenter );
|
||||
setFontRole( Q::Text, Fluent2::Body );
|
||||
setAlignment( Q::InputText, Qt::AlignLeft | Qt::AlignVCenter );
|
||||
setFontRole( Q::InputText, Fluent2::Body );
|
||||
}
|
||||
|
||||
void Editor::setupTextInputColors(
|
||||
|
@ -1785,8 +1785,8 @@ void Editor::setupTextInputColors(
|
|||
|
||||
const auto& pal = theme.palette;
|
||||
|
||||
setColor( Q::PanelSelected, pal.fillColor.accent.selectedTextBackground );
|
||||
setColor( Q::TextSelected, pal.fillColor.textOnAccent.selectedText );
|
||||
setColor( Q::Panel | Q::Selected, pal.fillColor.accent.selectedTextBackground );
|
||||
setColor( Q::InputText | Q::Selected, pal.fillColor.textOnAccent.selectedText );
|
||||
|
||||
for( const auto state : { A::NoState, Q::Hovered, Q::Focused, Q::Editing, Q::Disabled } )
|
||||
{
|
||||
|
@ -1821,7 +1821,7 @@ void Editor::setupTextInputColors(
|
|||
}
|
||||
|
||||
const auto panel = Q::Panel | section | state;
|
||||
const auto text = Q::Text | section | state;
|
||||
const auto text = Q::InputText | section | state;
|
||||
|
||||
panelColor = rgbSolid( panelColor, pal.background.solid.base );
|
||||
|
||||
|
|
|
@ -386,18 +386,17 @@ void Editor::setupTextInput()
|
|||
using A = QskAspect;
|
||||
using P = QPalette;
|
||||
|
||||
setAlignment( Q::Text, Qt::AlignLeft | Qt::AlignTop );
|
||||
setAlignment( Q::InputText, Qt::AlignLeft | Qt::AlignTop );
|
||||
|
||||
for ( auto state : { A::NoState, Q::Disabled } )
|
||||
{
|
||||
const auto colorGroup = ( state == A::NoState ) ? P::Active : P::Disabled;
|
||||
|
||||
setGradient( Q::Panel | state, m_pal.color( colorGroup, P::Base ) );
|
||||
setColor( Q::PanelSelected | state, m_pal.color( colorGroup, P::Highlight ) );
|
||||
|
||||
setColor( Q::Text | state, m_pal.color( colorGroup, P::Text ) );
|
||||
setColor( Q::TextSelected | state, m_pal.color( colorGroup, P::HighlightedText ) );
|
||||
setColor( Q::Panel | Q::Selected | state, m_pal.color( colorGroup, P::Highlight ) );
|
||||
|
||||
setColor( Q::InputText | state, m_pal.color( colorGroup, P::Text ) );
|
||||
setColor( Q::InputText | Q::Selected | state, m_pal.color( colorGroup, P::HighlightedText ) );
|
||||
}
|
||||
|
||||
setBoxBorderMetrics( Q::Panel, 1_px );
|
||||
|
|
|
@ -470,15 +470,15 @@ void Editor::setupTextInput()
|
|||
|
||||
// ### Also add a pressed state
|
||||
|
||||
setColor( Q::Text, m_pal.onSurface );
|
||||
setFontRole( Q::Text, BodyMedium );
|
||||
setAlignment( Q::Text, Qt::AlignLeft | Qt::AlignVCenter );
|
||||
setColor( Q::InputText, m_pal.onSurface );
|
||||
setFontRole( Q::InputText, BodyMedium );
|
||||
setAlignment( Q::InputText, Qt::AlignLeft | Qt::AlignVCenter );
|
||||
|
||||
const auto disabledPanelColor = QskRgb::toTransparentF( m_pal.onSurface, 0.04 );
|
||||
setGradient( Q::Panel | Q::Disabled, disabledPanelColor );
|
||||
setBoxBorderColors( Q::Panel | Q::Disabled, m_pal.onSurface38 );
|
||||
|
||||
setColor( Q::Text | Q::Disabled, m_pal.onSurface38 );
|
||||
setColor( Q::InputText | Q::Disabled, m_pal.onSurface38 );
|
||||
}
|
||||
|
||||
void Editor::setupProgressBar()
|
||||
|
|
|
@ -52,7 +52,7 @@ namespace
|
|||
|
||||
m_input = new QskTextInput( this );
|
||||
m_input->setValidator( new InputValidator( m_input ) );
|
||||
m_input->setText( QString::number( value ) );
|
||||
m_input->setInputText( QString::number( value ) );
|
||||
|
||||
const QFontMetricsF fm( m_input->font() );
|
||||
m_input->setFixedWidth( fm.horizontalAdvance( "-0.000" ) );
|
||||
|
@ -65,7 +65,7 @@ namespace
|
|||
|
||||
qreal value() const
|
||||
{
|
||||
return m_input->text().toDouble();
|
||||
return m_input->inputText().toDouble();
|
||||
}
|
||||
|
||||
Q_SIGNALS:
|
||||
|
|
|
@ -202,24 +202,24 @@ class InputBox : public QskLinearBox
|
|||
setSpacing( 10 );
|
||||
|
||||
auto* textInput1 = new QskTextInput( this );
|
||||
textInput1->setText( "Press and edit Me." );
|
||||
textInput1->setInputText( "Press and edit Me." );
|
||||
textInput1->setSizePolicy( Qt::Horizontal, QskSizePolicy::Preferred );
|
||||
|
||||
auto* textInput2 = new QskTextInput( this );
|
||||
textInput2->setText( "Press and edit Me." );
|
||||
textInput2->setInputText( "Press and edit Me." );
|
||||
textInput2->setSizePolicy( Qt::Horizontal, QskSizePolicy::Preferred );
|
||||
textInput2->setActivationModes( QskTextInput::ActivationOnAll );
|
||||
|
||||
auto* textInput3 = new QskTextInput( this );
|
||||
textInput3->setReadOnly( true );
|
||||
textInput3->setText( "Read Only information." );
|
||||
textInput3->setInputText( "Read Only information." );
|
||||
textInput3->setSizePolicy( Qt::Horizontal, QskSizePolicy::Preferred );
|
||||
|
||||
auto* textInput4 = new QskTextInput( this );
|
||||
textInput4->setEchoMode( QskTextInput::Password );
|
||||
textInput4->setPasswordMaskDelay( 1000 );
|
||||
textInput4->setMaxLength( 8 );
|
||||
textInput4->setText( "12345678" );
|
||||
textInput4->setInputText( "12345678" );
|
||||
textInput4->setSizePolicy( Qt::Horizontal, QskSizePolicy::Preferred );
|
||||
}
|
||||
};
|
||||
|
|
|
@ -13,16 +13,11 @@ QSK_QT_PRIVATE_BEGIN
|
|||
QSK_QT_PRIVATE_END
|
||||
|
||||
QSK_SUBCONTROL( QskTextInput, Panel )
|
||||
QSK_SUBCONTROL( QskTextInput, Text )
|
||||
|
||||
#if 1
|
||||
// shouldn't this be a Selected state, TODO ...
|
||||
QSK_SUBCONTROL( QskTextInput, PanelSelected )
|
||||
QSK_SUBCONTROL( QskTextInput, TextSelected )
|
||||
#endif
|
||||
QSK_SUBCONTROL( QskTextInput, InputText )
|
||||
|
||||
QSK_SYSTEM_STATE( QskTextInput, ReadOnly, QskAspect::FirstSystemState << 1 )
|
||||
QSK_SYSTEM_STATE( QskTextInput, Editing, QskAspect::FirstSystemState << 2 )
|
||||
QSK_SYSTEM_STATE( QskTextInput, Selected, QskAspect::FirstSystemState << 3 )
|
||||
|
||||
static inline void qskPropagateReadOnly( QskTextInput* input )
|
||||
{
|
||||
|
@ -36,13 +31,13 @@ static inline void qskBindSignals(
|
|||
const QQuickTextInput* wrappedInput, QskTextInput* input )
|
||||
{
|
||||
QObject::connect( wrappedInput, &QQuickTextInput::textChanged,
|
||||
input, [ input ] { Q_EMIT input->textChanged( input->text() ); } );
|
||||
input, [ input ] { Q_EMIT input->inputTextChanged( input->inputText() ); } );
|
||||
|
||||
QObject::connect( wrappedInput, &QQuickTextInput::displayTextChanged,
|
||||
input, [ input ] { Q_EMIT input->displayTextChanged( input->displayText() ); } );
|
||||
|
||||
QObject::connect( wrappedInput, &QQuickTextInput::textEdited,
|
||||
input, [ input ] { Q_EMIT input->textEdited( input->text() ); } );
|
||||
input, [ input ] { Q_EMIT input->textEdited( input->inputText() ); } );
|
||||
|
||||
QObject::connect( wrappedInput, &QQuickTextInput::validatorChanged,
|
||||
input, &QskTextInput::validatorChanged );
|
||||
|
@ -252,7 +247,7 @@ namespace
|
|||
|
||||
QColor color;
|
||||
|
||||
color = input->color( QskTextInput::Text );
|
||||
color = input->color( QskTextInput::InputText );
|
||||
if ( d->color != color )
|
||||
{
|
||||
d->color = color;
|
||||
|
@ -261,14 +256,14 @@ namespace
|
|||
|
||||
if ( d->hasSelectedText() )
|
||||
{
|
||||
color = input->color( QskTextInput::PanelSelected );
|
||||
color = input->color( QskTextInput::Panel | QskTextInput::Selected );
|
||||
if ( d->selectionColor != color )
|
||||
{
|
||||
d->selectionColor = color;
|
||||
isDirty = true;
|
||||
}
|
||||
|
||||
color = input->color( QskTextInput::TextSelected );
|
||||
color = input->color( QskTextInput::InputText | QskTextInput::Selected );
|
||||
if ( d->selectedTextColor != color )
|
||||
{
|
||||
d->selectedTextColor = color;
|
||||
|
@ -519,7 +514,7 @@ void QskTextInput::updateLayout()
|
|||
auto input = m_data->textInput;
|
||||
|
||||
input->updateMetrics();
|
||||
qskSetItemGeometry( input, subControlRect( Text ) );
|
||||
qskSetItemGeometry( input, subControlRect( InputText ) );
|
||||
}
|
||||
|
||||
void QskTextInput::updateNode( QSGNode* node )
|
||||
|
@ -528,12 +523,12 @@ void QskTextInput::updateNode( QSGNode* node )
|
|||
Inherited::updateNode( node );
|
||||
}
|
||||
|
||||
QString QskTextInput::text() const
|
||||
QString QskTextInput::inputText() const
|
||||
{
|
||||
return m_data->textInput->text();
|
||||
}
|
||||
|
||||
void QskTextInput::setText( const QString& text )
|
||||
void QskTextInput::setInputText( const QString& text )
|
||||
{
|
||||
m_data->textInput->setText( text );
|
||||
}
|
||||
|
@ -574,7 +569,7 @@ static inline void qskUpdateInputMethodFont( const QskTextInput* input )
|
|||
|
||||
void QskTextInput::setFontRole( const QskFontRole& role )
|
||||
{
|
||||
if ( setFontRoleHint( Text, role ) )
|
||||
if ( setFontRoleHint( InputText, role ) )
|
||||
{
|
||||
qskUpdateInputMethodFont( this );
|
||||
Q_EMIT fontRoleChanged();
|
||||
|
@ -583,7 +578,7 @@ void QskTextInput::setFontRole( const QskFontRole& role )
|
|||
|
||||
void QskTextInput::resetFontRole()
|
||||
{
|
||||
if ( resetFontRoleHint( Text ) )
|
||||
if ( resetFontRoleHint( InputText ) )
|
||||
{
|
||||
qskUpdateInputMethodFont( this );
|
||||
Q_EMIT fontRoleChanged();
|
||||
|
@ -592,12 +587,12 @@ void QskTextInput::resetFontRole()
|
|||
|
||||
QskFontRole QskTextInput::fontRole() const
|
||||
{
|
||||
return fontRoleHint( Text );
|
||||
return fontRoleHint( InputText );
|
||||
}
|
||||
|
||||
void QskTextInput::setAlignment( Qt::Alignment alignment )
|
||||
{
|
||||
if ( setAlignmentHint( Text, alignment ) )
|
||||
if ( setAlignmentHint( InputText, alignment ) )
|
||||
{
|
||||
m_data->textInput->setAlignment( alignment );
|
||||
Q_EMIT alignmentChanged();
|
||||
|
@ -606,7 +601,7 @@ void QskTextInput::setAlignment( Qt::Alignment alignment )
|
|||
|
||||
void QskTextInput::resetAlignment()
|
||||
{
|
||||
if ( resetAlignmentHint( Text ) )
|
||||
if ( resetAlignmentHint( InputText ) )
|
||||
{
|
||||
m_data->textInput->setAlignment( alignment() );
|
||||
Q_EMIT alignmentChanged();
|
||||
|
@ -615,7 +610,7 @@ void QskTextInput::resetAlignment()
|
|||
|
||||
Qt::Alignment QskTextInput::alignment() const
|
||||
{
|
||||
return alignmentHint( Text, Qt::AlignLeft | Qt::AlignTop );
|
||||
return alignmentHint( InputText, Qt::AlignLeft | Qt::AlignTop );
|
||||
}
|
||||
|
||||
void QskTextInput::setWrapMode( QskTextOptions::WrapMode wrapMode )
|
||||
|
@ -632,7 +627,7 @@ QskTextOptions::WrapMode QskTextInput::wrapMode() const
|
|||
|
||||
QFont QskTextInput::font() const
|
||||
{
|
||||
return effectiveFont( QskTextInput::Text );
|
||||
return effectiveFont( QskTextInput::InputText );
|
||||
}
|
||||
|
||||
bool QskTextInput::isReadOnly() const
|
||||
|
@ -922,7 +917,7 @@ void QskTextInput::setupFrom( const QQuickItem* item )
|
|||
if ( event.queries() & Qt::ImSurroundingText )
|
||||
{
|
||||
const auto text = event.value( Qt::ImSurroundingText ).toString();
|
||||
setText( text );
|
||||
setInputText( text );
|
||||
}
|
||||
|
||||
if ( event.queries() & Qt::ImCursorPosition )
|
||||
|
|
|
@ -16,7 +16,7 @@ class QSK_EXPORT QskTextInput : public QskControl
|
|||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY( QString text READ text WRITE setText NOTIFY textChanged USER true)
|
||||
Q_PROPERTY( QString inputText READ inputText WRITE setInputText NOTIFY inputTextChanged USER true )
|
||||
|
||||
Q_PROPERTY( QString description READ description
|
||||
WRITE setDescription NOTIFY descriptionChanged )
|
||||
|
@ -55,8 +55,8 @@ class QSK_EXPORT QskTextInput : public QskControl
|
|||
using Inherited = QskControl;
|
||||
|
||||
public:
|
||||
QSK_SUBCONTROLS( Panel, Text, PanelSelected, TextSelected )
|
||||
QSK_STATES( ReadOnly, Editing )
|
||||
QSK_SUBCONTROLS( Panel, InputText )
|
||||
QSK_STATES( ReadOnly, Editing, Selected )
|
||||
|
||||
enum ActivationMode
|
||||
{
|
||||
|
@ -84,13 +84,13 @@ class QSK_EXPORT QskTextInput : public QskControl
|
|||
Q_ENUM( EchoMode )
|
||||
|
||||
QskTextInput( QQuickItem* parent = nullptr );
|
||||
QskTextInput( const QString& text, QQuickItem* parent = nullptr );
|
||||
QskTextInput( const QString&, QQuickItem* parent = nullptr );
|
||||
|
||||
~QskTextInput() override;
|
||||
|
||||
void setupFrom( const QQuickItem* );
|
||||
|
||||
QString text() const;
|
||||
QString inputText() const;
|
||||
|
||||
void setDescription( const QString& );
|
||||
QString description() const;
|
||||
|
@ -163,7 +163,7 @@ class QSK_EXPORT QskTextInput : public QskControl
|
|||
void ensureVisible( int position );
|
||||
|
||||
public Q_SLOTS:
|
||||
void setText( const QString& );
|
||||
void setInputText( const QString& );
|
||||
void setEditing( bool );
|
||||
|
||||
Q_SIGNALS:
|
||||
|
@ -173,7 +173,7 @@ class QSK_EXPORT QskTextInput : public QskControl
|
|||
void readOnlyChanged( bool );
|
||||
void panelChanged( bool );
|
||||
|
||||
void textChanged( const QString& );
|
||||
void inputTextChanged( const QString& );
|
||||
void displayTextChanged( const QString& );
|
||||
|
||||
void textEdited( const QString& );
|
||||
|
|
|
@ -23,7 +23,7 @@ QRectF QskTextInputSkinlet::subControlRect( const QskSkinnable* skinnable,
|
|||
{
|
||||
return contentsRect;
|
||||
}
|
||||
else if ( subControl == QskTextInput::Text )
|
||||
else if ( subControl == QskTextInput::InputText )
|
||||
{
|
||||
return skinnable->subControlContentsRect( contentsRect, QskTextInput::Panel );
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace
|
|||
if ( subControl == QskTextInput::Panel )
|
||||
return m_panelBox->effectiveSubcontrol( QskInputPanelBox::ProxyPanel );
|
||||
|
||||
if ( subControl == QskTextInput::Text )
|
||||
if ( subControl == QskTextInput::InputText )
|
||||
return m_panelBox->effectiveSubcontrol( QskInputPanelBox::ProxyText );
|
||||
|
||||
return subControl;
|
||||
|
@ -187,7 +187,7 @@ QskAspect::Subcontrol QskInputPanelBox::substitutedSubcontrol(
|
|||
return QskTextInput::Panel;
|
||||
|
||||
if ( subControl == QskInputPanelBox::ProxyText )
|
||||
return QskTextInput::Text;
|
||||
return QskTextInput::InputText;
|
||||
#endif
|
||||
|
||||
return subControl;
|
||||
|
|
Loading…
Reference in New Issue