From 9d79b2edf962c51e96b9bd076b3bdb78ab4a910a Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 6 Sep 2019 19:57:25 +0200 Subject: [PATCH] isVisibleToLayout added --- src/controls/QskControl.cpp | 21 ++++++--------------- src/controls/QskControl.h | 2 ++ 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/controls/QskControl.cpp b/src/controls/QskControl.cpp index bb17a76d..dbf31554 100644 --- a/src/controls/QskControl.cpp +++ b/src/controls/QskControl.cpp @@ -399,6 +399,12 @@ QskControl::LayoutHints QskControl::layoutHints() const return static_cast< LayoutHints >( d_func()->layoutHints ); } +bool QskControl::isVisibleToLayout() const +{ + return !isTransparentForPositioner() + && ( isVisibleToParent() || ( layoutHints() & RetainSizeWhenHidden ) ); +} + void QskControl::setPreferredSize( const QSizeF& size ) { setExplicitSizeHint( Qt::PreferredSize, size ); @@ -654,12 +660,6 @@ QSizeF QskControl::effectiveSizeHint( we always have: minimum <= preferred <= maximum. */ -#define DEBUG_NORMALIZE_HINTS 0 - -#if DEBUG_NORMALIZE_HINTS - const auto oldHint = hint; -#endif - if ( whichHint == Qt::MaximumSize ) { const auto minimumHint = d->explicitSizeHint( Qt::MinimumSize ); @@ -691,15 +691,6 @@ QSizeF QskControl::effectiveSizeHint( hint.setHeight( qBound( minH, hint.height(), maxH ) ); } } - -#if DEBUG_NORMALIZE_HINTS - if ( hint != oldHint ) - { - const auto minimumHint = d->explicitSizeHint( Qt::MinimumSize ); - const auto maximumHint = d->explicitSizeHint( Qt::MaximumSize ); - qDebug() << whichHint << minimumHint << oldHint << maximumHint << "->" << hint; - } -#endif } return hint; diff --git a/src/controls/QskControl.h b/src/controls/QskControl.h index 3def69cc..36060b08 100644 --- a/src/controls/QskControl.h +++ b/src/controls/QskControl.h @@ -118,6 +118,8 @@ class QSK_EXPORT QskControl : public QskQuickItem, public QskSkinnable void setLayoutHints( LayoutHints ); LayoutHints layoutHints() const; + bool isVisibleToLayout() const; + void setMinimumSize( const QSizeF& ); void setMinimumSize( qreal width, qreal height ); void setMinimumWidth( qreal width );