full updates for setting skinlet or margin

This commit is contained in:
Uwe Rathmann 2021-02-11 12:45:17 +01:00
parent 0a04f0be74
commit cf2ca93cab
3 changed files with 16 additions and 3 deletions

View File

@ -603,9 +603,14 @@ bool QskQuickItem::event( QEvent* event )
} }
case QEvent::ContentsRectChange: case QEvent::ContentsRectChange:
{ {
resetImplicitSize();
if ( polishOnResize() ) if ( polishOnResize() )
polish(); polish();
if ( flags() & QQuickItem::ItemHasContents )
update();
changeEvent( event ); changeEvent( event );
return true; return true;
} }
@ -779,9 +784,10 @@ void QskQuickItem::itemChange( QQuickItem::ItemChange change,
case QQuickItem::ItemChildAddedChange: case QQuickItem::ItemChildAddedChange:
case QQuickItem::ItemChildRemovedChange: case QQuickItem::ItemChildRemovedChange:
{ {
// do we want to have events for thos ??? // do we want to have events for those ???
break; break;
} }
case QQuickItem::ItemOpacityHasChanged: case QQuickItem::ItemOpacityHasChanged:
case QQuickItem::ItemActiveFocusHasChanged: case QQuickItem::ItemActiveFocusHasChanged:
case QQuickItem::ItemRotationHasChanged: case QQuickItem::ItemRotationHasChanged:

View File

@ -258,7 +258,14 @@ void QskSkinnable::setSkinlet( const QskSkinlet* skinlet )
m_data->skinlet = skinlet; m_data->skinlet = skinlet;
m_data->hasLocalSkinlet = ( skinlet != nullptr ); m_data->hasLocalSkinlet = ( skinlet != nullptr );
owningControl()->update(); if ( auto control = owningControl() )
{
control->resetImplicitSize();
control->polish();
if ( control->flags() & QQuickItem::ItemHasContents )
control->update();
}
} }
const QskSkinlet* QskSkinnable::skinlet() const const QskSkinlet* QskSkinnable::skinlet() const

View File

@ -72,7 +72,7 @@ class QSK_EXPORT QskSkinnable
QskSkinnable(); QskSkinnable();
virtual ~QskSkinnable(); virtual ~QskSkinnable();
void setSkinlet( const QskSkinlet* skinlet ); void setSkinlet( const QskSkinlet* );
const QskSkinlet* skinlet() const; const QskSkinlet* skinlet() const;
QFont effectiveFont( QskAspect ) const; QFont effectiveFont( QskAspect ) const;