push button: Support more alignments of icon and text
This commit is contained in:
parent
f98af6d298
commit
03e24d5fea
@ -561,10 +561,8 @@ void Editor::setupPushButton()
|
|||||||
setStrutSize( Q::Panel, -1, 40_dp );
|
setStrutSize( Q::Panel, -1, 40_dp );
|
||||||
setSpacing( Q::Panel, 8_dp );
|
setSpacing( Q::Panel, 8_dp );
|
||||||
setPadding( Q::Panel, { 24_dp, 0, 24_dp, 0 } );
|
setPadding( Q::Panel, { 24_dp, 0, 24_dp, 0 } );
|
||||||
|
|
||||||
setBoxShape( Q::Panel, 100, Qt::RelativeSize );
|
setBoxShape( Q::Panel, 100, Qt::RelativeSize );
|
||||||
|
|
||||||
setAlignment( Q::Graphic, Qt::AlignCenter );
|
|
||||||
setStrutSize( Q::Graphic, 18_dp, 18_dp );
|
setStrutSize( Q::Graphic, 18_dp, 18_dp );
|
||||||
setPadding( Q::Graphic, { 0, 0, 8_dp, 0 } );
|
setPadding( Q::Graphic, { 0, 0, 8_dp, 0 } );
|
||||||
setGraphicRole( Q::Graphic, QskMaterial3Skin::GraphicRoleOnPrimary );
|
setGraphicRole( Q::Graphic, QskMaterial3Skin::GraphicRoleOnPrimary );
|
||||||
@ -572,8 +570,6 @@ void Editor::setupPushButton()
|
|||||||
setFontRole( Q::Text, QskMaterial3Skin::M3LabelLarge );
|
setFontRole( Q::Text, QskMaterial3Skin::M3LabelLarge );
|
||||||
setPadding( Q::Text, 0 );
|
setPadding( Q::Text, 0 );
|
||||||
|
|
||||||
setAlignment( Q::Text, Qt::AlignCenter );
|
|
||||||
|
|
||||||
// normal buttons (i.e. Filled):
|
// normal buttons (i.e. Filled):
|
||||||
|
|
||||||
setGradient( Q::Panel, m_pal.primary );
|
setGradient( Q::Panel, m_pal.primary );
|
||||||
|
@ -37,6 +37,9 @@ namespace
|
|||||||
setGraphicTextElements( button,
|
setGraphicTextElements( button,
|
||||||
QskPushButton::Text, button->text(),
|
QskPushButton::Text, button->text(),
|
||||||
QskPushButton::Graphic, button->graphic().defaultSize() );
|
QskPushButton::Graphic, button->graphic().defaultSize() );
|
||||||
|
|
||||||
|
const auto alignment = button->alignmentHint( QskPushButton::Panel, Qt::AlignCenter );
|
||||||
|
setFixedContent( QskPushButton::Text, Qt::Horizontal, alignment );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -407,6 +407,54 @@ void QskSubcontrolLayoutEngine::setGraphicTextElements( const QskSkinnable* skin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QskSubcontrolLayoutEngine::setFixedContent( QskAspect::Subcontrol subcontrol, Qt::Orientation orientation, Qt::Alignment alignment )
|
||||||
|
{
|
||||||
|
if( auto* e = element( subcontrol ) )
|
||||||
|
{
|
||||||
|
e->setSizePolicy( QskSizePolicy::Fixed, e->sizePolicy().verticalPolicy() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Qt::Edges extraSpacing;
|
||||||
|
|
||||||
|
switch( orientation )
|
||||||
|
{
|
||||||
|
case Qt::Horizontal:
|
||||||
|
extraSpacing |= ( extraSpacingAt() & ( Qt::TopEdge | Qt::BottomEdge ) );
|
||||||
|
|
||||||
|
if( alignment & Qt::AlignLeft )
|
||||||
|
{
|
||||||
|
extraSpacing |= Qt::RightEdge;
|
||||||
|
}
|
||||||
|
else if( alignment & Qt::AlignRight )
|
||||||
|
{
|
||||||
|
extraSpacing |= Qt::LeftEdge;
|
||||||
|
}
|
||||||
|
else if( alignment & Qt::AlignHCenter )
|
||||||
|
{
|
||||||
|
extraSpacing |= Qt::LeftEdge | Qt::RightEdge;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Qt::Vertical:
|
||||||
|
extraSpacing |= ( extraSpacingAt() & ( Qt::LeftEdge | Qt::RightEdge ) );
|
||||||
|
|
||||||
|
if( alignment & Qt::AlignTop )
|
||||||
|
{
|
||||||
|
extraSpacing |= Qt::BottomEdge;
|
||||||
|
}
|
||||||
|
else if( alignment & Qt::AlignBottom )
|
||||||
|
{
|
||||||
|
extraSpacing |= Qt::TopEdge;
|
||||||
|
}
|
||||||
|
else if( alignment & Qt::AlignVCenter )
|
||||||
|
{
|
||||||
|
extraSpacing |= Qt::TopEdge | Qt::BottomEdge;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
setExtraSpacingAt( extraSpacing );
|
||||||
|
}
|
||||||
|
|
||||||
void QskSubcontrolLayoutEngine::addElement( LayoutElement* element )
|
void QskSubcontrolLayoutEngine::addElement( LayoutElement* element )
|
||||||
{
|
{
|
||||||
m_data->elements += element;
|
m_data->elements += element;
|
||||||
|
@ -127,6 +127,8 @@ class QskSubcontrolLayoutEngine : public QskLayoutEngine2D
|
|||||||
QskAspect::Subcontrol, const QString& text,
|
QskAspect::Subcontrol, const QString& text,
|
||||||
QskAspect::Subcontrol, const QSizeF& graphicSize );
|
QskAspect::Subcontrol, const QSizeF& graphicSize );
|
||||||
|
|
||||||
|
void setFixedContent( QskAspect::Subcontrol, Qt::Orientation, Qt::Alignment );
|
||||||
|
|
||||||
QRectF subControlRect( QskAspect::Subcontrol ) const;
|
QRectF subControlRect( QskAspect::Subcontrol ) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user