diff --git a/src/layouts/QskLayoutConstraint.cpp b/src/layouts/QskLayoutConstraint.cpp index 2688ecb6..0bcc1b14 100644 --- a/src/layouts/QskLayoutConstraint.cpp +++ b/src/layouts/QskLayoutConstraint.cpp @@ -494,3 +494,14 @@ void QskLayoutConstraint::setRetainSizeWhenHidden( QQuickItem* item, bool on ) item->setProperty( s_retainSizeWhenHiddenProperty, v ); } } + +bool QskLayoutConstraint::isVisibleToLayout( const QQuickItem* item ) +{ + if ( item ) + { + if ( !qskIsTransparentForPositioner( item ) ) + return qskIsVisibleToParent( item ) || retainSizeWhenHidden( item ); + } + + return false; +} diff --git a/src/layouts/QskLayoutConstraint.h b/src/layouts/QskLayoutConstraint.h index 55b36f06..c2fcd553 100644 --- a/src/layouts/QskLayoutConstraint.h +++ b/src/layouts/QskLayoutConstraint.h @@ -66,6 +66,8 @@ namespace QskLayoutConstraint QSK_EXPORT bool retainSizeWhenHidden( const QQuickItem* ); QSK_EXPORT void setRetainSizeWhenHidden( QQuickItem*, bool ); + QSK_EXPORT bool isVisibleToLayout( const QQuickItem* ); + const qreal unlimited = std::numeric_limits< float >::max(); const QSizeF defaultSizeHints[] = { { 0, 0 }, { -1, -1 }, { unlimited, unlimited } }; }