diff --git a/src/controls/QskQuick.cpp b/src/controls/QskQuick.cpp index c820b45e..77ecf29c 100644 --- a/src/controls/QskQuick.cpp +++ b/src/controls/QskQuick.cpp @@ -621,4 +621,15 @@ QRectF qskConstrainedItemRect( const QQuickItem* item, return qskAlignedRectF( rect, size.width(), size.height(), alignment ); } +void qskItemUpdateRecursive( QQuickItem* item ) +{ + if ( item == nullptr ) + return; + if ( item->flags() & QQuickItem::ItemHasContents ) + item->update(); + + const auto& children = QQuickItemPrivate::get( item )->childItems; + for ( auto child : children ) + qskItemUpdateRecursive( child ); +} diff --git a/src/controls/QskQuick.h b/src/controls/QskQuick.h index be5a039a..0f723f5d 100644 --- a/src/controls/QskQuick.h +++ b/src/controls/QskQuick.h @@ -64,6 +64,8 @@ QSK_EXPORT void qskInputMethodSetVisible( const QQuickItem*, bool ); QSK_EXPORT const QSGNode* qskItemNode( const QQuickItem* ); QSK_EXPORT const QSGNode* qskPaintNode( const QQuickItem* ); +QSK_EXPORT void qskItemUpdateRecursive( QQuickItem* ); + inline void qskSetItemGeometry( QQuickItem* item, qreal x, qreal y, qreal width, qreal height ) {