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:
{
resetImplicitSize();
if ( polishOnResize() )
polish();
if ( flags() & QQuickItem::ItemHasContents )
update();
changeEvent( event );
return true;
}
@ -779,9 +784,10 @@ void QskQuickItem::itemChange( QQuickItem::ItemChange change,
case QQuickItem::ItemChildAddedChange:
case QQuickItem::ItemChildRemovedChange:
{
// do we want to have events for thos ???
// do we want to have events for those ???
break;
}
case QQuickItem::ItemOpacityHasChanged:
case QQuickItem::ItemActiveFocusHasChanged:
case QQuickItem::ItemRotationHasChanged:

View File

@ -258,7 +258,14 @@ void QskSkinnable::setSkinlet( const QskSkinlet* skinlet )
m_data->skinlet = skinlet;
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

View File

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