QskSpinBox text alignment fixed

This commit is contained in:
Uwe Rathmann 2024-02-26 17:58:49 +01:00
parent f614117d96
commit 82bd6f1420
6 changed files with 16 additions and 47 deletions

View File

@ -1497,13 +1497,22 @@ void Editor::setupSpinBoxMetrics()
{
using Q = QskSpinBox;
/*
The F2 NumberBox has 2 modes for the Up/Down panels ( a.k.a Spinner ):
- compact ( -> QskSpinBox::UpDownControl )
- inline ( -> QskSpinBox::ButtonsRight )
TODO: in compact mode the panels/indicators are blown up, when being hovered
*/
setHint( Q::Panel | QskAspect::Style, Q::ButtonsRight );
setStrutSize( Q::Panel, { -1, 32_px } );
setBoxBorderMetrics( Q::Panel, 1_px );
setBoxShape( Q::Panel, 3_px );
setPadding( Q::Panel, { 11_px, 0, 11_px, 0 } );
setAlignment( Q::Text, Qt::AlignLeft );
setAlignment( Q::Text, Qt::AlignLeft | Qt::AlignVCenter );
setFontRole( Q::Text, Fluent2::Body );
setPadding( Q::TextPanel, { 11_px, 5_px, 0, 0 } );

View File

@ -859,8 +859,6 @@ void Editor::setupSpinBox()
setPadding( Q::TextPanel, 5_dp );
setBoxShape( Q::TextPanel, 2, 0, 2, 0 );
setColor( Q::Text, m_pal.active( P::Text ) );
setGradient( Q::TextPanel | Q::Disabled, m_pal.disabled( P::Base ) );
setBoxBorderMetrics( Q::TextPanel, 1_dp );
@ -872,6 +870,9 @@ void Editor::setupSpinBox()
Combination( { Q::Increasing, Q::Decreasing, Q::Hovered } ) );
#endif
setColor( Q::Text, m_pal.active( P::Text ) );
setAlignment( Q::Text, Qt::AlignCenter );
setBoxShape( Q::UpPanel, 0, 2_dp, 0, 0 );
setBoxBorderMetrics( Q::UpPanel, 0_dp, 1_dp, 1_dp, 0_dp );

View File

@ -887,7 +887,6 @@ void Editor::setupSpinBox()
setStrutSize( Q::UpPanel, 40_dp,40_dp );
setStrutSize( Q::DownPanel, 40_dp, 40_dp );
setAlignment( Q::Panel, Qt::AlignHCenter );
setAlignment( Q::Text, Qt::AlignCenter );
for( const auto subControl : { Q::DownPanel, Q::UpPanel, Q::TextPanel } )

View File

@ -39,14 +39,9 @@ namespace
return QskAspect::NoSubcontrol;
}
inline QskAspect aspectDecoration()
inline constexpr QskAspect aspectDecoration()
{
return QskSpinBox::Panel | QskAspect::NoType | QskAspect::Style;
}
inline QskAspect aspectTextAlignment()
{
return QskSpinBox::TextPanel | QskAspect::NoType | QskAspect::Alignment;
return QskSpinBox::Panel | QskAspect::Style;
}
}
@ -176,26 +171,6 @@ QskSpinBox::Decoration QskSpinBox::decoration() const
return flagHint< QskSpinBox::Decoration >( aspectDecoration(), ButtonsLeftAndRight );
}
void QskSpinBox::setTextAlignment( Qt::Alignment alignment )
{
alignment &= Qt::AlignHorizontal_Mask;
if ( setFlagHint( aspectTextAlignment(), alignment ) )
Q_EMIT textAlignmentChanged( alignment );
}
void QskSpinBox::resetTextAlignment()
{
if ( resetSkinHint( aspectTextAlignment() ) )
Q_EMIT textAlignmentChanged( textAlignment() );
}
Qt::Alignment QskSpinBox::textAlignment() const
{
return flagHint< Qt::Alignment >(
aspectTextAlignment(), Qt::AlignLeft ) & Qt::AlignHorizontal_Mask;
}
void QskSpinBox::setWrapping( bool on )
{
if ( on != m_data->wrapping )

View File

@ -22,9 +22,6 @@ class QSK_EXPORT QskSpinBox : public QskBoundedValueInput
Q_PROPERTY( int decimals READ decimals
WRITE setDecimals NOTIFY decimalsChanged )
Q_PROPERTY( Qt::Alignment textAlignment READ textAlignment
WRITE setTextAlignment RESET textAlignment NOTIFY textAlignmentChanged )
Q_PROPERTY( QString text READ text NOTIFY textChanged )
public:
@ -53,11 +50,6 @@ class QSK_EXPORT QskSpinBox : public QskBoundedValueInput
void resetDecoration();
Decoration decoration() const;
// Qt::AlignLeft, Qt::AlignRight or Qt::AlignHCenter.
void setTextAlignment( Qt::Alignment );
void resetTextAlignment();
Qt::Alignment textAlignment() const;
void setWrapping( bool );
bool isWrapping() const;
@ -71,10 +63,7 @@ class QSK_EXPORT QskSpinBox : public QskBoundedValueInput
Q_SIGNALS:
void decorationChanged( Decoration );
void textAlignmentChanged( Qt::Alignment );
void wrappingChanged( bool );
void decimalsChanged( int );
void textChanged();

View File

@ -117,11 +117,7 @@ QSGNode* QskSpinBoxSkinlet::updateSubNode(
case TextRole:
{
auto spinBox = static_cast< const QskSpinBox* >( skinnable );
const auto rect = subControlRect( spinBox, spinBox->contentsRect(), Q::Text );
return updateTextNode( spinBox, node, rect,
spinBox->textAlignment(), spinBox->text(), Q::Text );
return updateTextNode( spinBox, node, spinBox->text(), Q::Text );
}
}