suing initSizePolicy in constructors to avoid potential problems from
layout requests coming before the parent has been constructed completely.
This commit is contained in:
parent
cf58650c05
commit
d2d37852a2
@ -44,7 +44,7 @@ QskGraphicLabel::QskGraphicLabel( const QUrl& source, QQuickItem* parent ):
|
||||
Inherited( parent ),
|
||||
m_data( new PrivateData( source ) )
|
||||
{
|
||||
setSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
|
||||
initSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
|
||||
|
||||
if ( !m_data->source.isEmpty() )
|
||||
polish();
|
||||
|
@ -226,9 +226,11 @@ QskInputPanel::QskInputPanel( QQuickItem* parent ):
|
||||
QskControl( parent ),
|
||||
m_data( new PrivateData )
|
||||
{
|
||||
setSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
|
||||
setFlag( ItemHasContents );
|
||||
setAcceptedMouseButtons( Qt::MouseButtonMask );
|
||||
|
||||
initSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
|
||||
|
||||
updateLocale( locale() );
|
||||
|
||||
QObject::connect( this, &QskControl::localeChanged,
|
||||
|
@ -31,7 +31,7 @@ QskPageIndicator::QskPageIndicator( int count, QQuickItem* parent ):
|
||||
m_data( new PrivateData( count ) )
|
||||
{
|
||||
// as we don't stretch the bullets
|
||||
setSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Fixed );
|
||||
}
|
||||
|
||||
QskPageIndicator::QskPageIndicator( QQuickItem* parent ):
|
||||
|
@ -46,7 +46,7 @@ QskPushButton::QskPushButton( const QString& text, QQuickItem* parent ):
|
||||
Inherited( parent ),
|
||||
m_data( new PrivateData( text ) )
|
||||
{
|
||||
setSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
}
|
||||
|
||||
QskPushButton::~QskPushButton()
|
||||
|
@ -17,6 +17,21 @@ QskResizable::~QskResizable()
|
||||
{
|
||||
}
|
||||
|
||||
void QskResizable::initSizePolicy(
|
||||
QskSizePolicy::Policy horizontalPolicy,
|
||||
QskSizePolicy::Policy verticalPolicy )
|
||||
{
|
||||
/*
|
||||
In constructors of derived classes you don't need
|
||||
to propagate changes by layoutConstraintChanged.
|
||||
Sometimes it is even worse as the parent might not be
|
||||
even prepared to handle the LayouRequest event.
|
||||
*/
|
||||
|
||||
m_sizePolicy.setHorizontalPolicy( horizontalPolicy );
|
||||
m_sizePolicy.setVerticalPolicy( verticalPolicy );
|
||||
}
|
||||
|
||||
void QskResizable::setSizePolicy( const QskSizePolicy& policy )
|
||||
{
|
||||
if ( policy != m_sizePolicy )
|
||||
|
@ -63,6 +63,9 @@ public:
|
||||
virtual qreal heightForWidth( qreal width ) const;
|
||||
virtual qreal widthForHeight( qreal height ) const;
|
||||
|
||||
protected:
|
||||
void initSizePolicy( QskSizePolicy::Policy, QskSizePolicy::Policy );
|
||||
|
||||
private:
|
||||
virtual void layoutConstraintChanged();
|
||||
|
||||
|
@ -18,9 +18,9 @@ QskSeparator::QskSeparator( Qt::Orientation orientation, QQuickItem* parent ):
|
||||
m_orientation( orientation )
|
||||
{
|
||||
if ( orientation == Qt::Horizontal )
|
||||
setSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
else
|
||||
setSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Minimum );
|
||||
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Minimum );
|
||||
}
|
||||
|
||||
QskSeparator::~QskSeparator()
|
||||
|
@ -47,9 +47,9 @@ QskSlider::QskSlider( Qt::Orientation orientation, QQuickItem* parent ):
|
||||
setActiveFocusOnTab( true );
|
||||
|
||||
if ( orientation == Qt::Horizontal )
|
||||
setSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
else
|
||||
setSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Minimum );
|
||||
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Minimum );
|
||||
|
||||
setMetric( QskSlider::Handle | QskAspect::Position, position() );
|
||||
|
||||
|
@ -64,7 +64,7 @@ QskStatusIndicator::QskStatusIndicator( QQuickItem* parent ):
|
||||
Inherited( parent ),
|
||||
m_data( new PrivateData() )
|
||||
{
|
||||
setSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
|
||||
initSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
|
||||
}
|
||||
|
||||
QskStatusIndicator::~QskStatusIndicator()
|
||||
|
@ -34,7 +34,7 @@ QskSubWindow::QskSubWindow( QQuickItem* parent ):
|
||||
m_data( new PrivateData() )
|
||||
{
|
||||
setMargins( 0 );
|
||||
setSizePolicy( QskSizePolicy::MinimumExpanding, QskSizePolicy::MinimumExpanding );
|
||||
initSizePolicy( QskSizePolicy::MinimumExpanding, QskSizePolicy::MinimumExpanding );
|
||||
|
||||
setAutoLayoutChildren( true );
|
||||
}
|
||||
|
@ -46,9 +46,9 @@ QskTabBar::QskTabBar( Qt::Orientation orientation, QQuickItem* parent ):
|
||||
m_data->layoutBox->setExtraSpacingAt( Qt::RightEdge | Qt::BottomEdge );
|
||||
|
||||
if ( orientation == Qt::Horizontal )
|
||||
setSizePolicy( QskSizePolicy::Preferred, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Preferred, QskSizePolicy::Fixed );
|
||||
else
|
||||
setSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Preferred );
|
||||
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Preferred );
|
||||
|
||||
setAutoLayoutChildren( true );
|
||||
|
||||
|
@ -37,7 +37,7 @@ QskTabButton::QskTabButton( const QString& text, QQuickItem* parent ):
|
||||
{
|
||||
resolveTabBar();
|
||||
|
||||
setSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
|
||||
setCheckable( true );
|
||||
setExclusive( true );
|
||||
|
@ -37,7 +37,7 @@ QskTextLabel::QskTextLabel( const QString& text, QQuickItem* parent ):
|
||||
Inherited( parent ),
|
||||
m_data( new PrivateData( text ) )
|
||||
{
|
||||
setSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
initSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Fixed );
|
||||
}
|
||||
|
||||
QskTextLabel::~QskTextLabel()
|
||||
|
Loading…
x
Reference in New Issue
Block a user