QskSizePolicy - more constrained policies

This commit is contained in:
Uwe Rathmann 2019-06-20 11:45:32 +02:00
parent abfdb4894e
commit 79597b61ca
3 changed files with 32 additions and 21 deletions

View File

@ -24,24 +24,32 @@ class QSK_EXPORT QskSizePolicy
public:
enum Flag
{
GrowFlag = 1 << 0,
ExpandFlag = 1 << 1,
ShrinkFlag = 1 << 2,
IgnoreFlag = 1 << 3,
ConstrainedFlag = IgnoreFlag
GrowFlag = 1 << 0,
ExpandFlag = 1 << 1,
ShrinkFlag = 1 << 2,
IgnoreFlag = 1 << 3,
ConstrainedFlag = 1 << 4
};
enum Policy
{
Fixed = 0,
Minimum = GrowFlag,
Maximum = ShrinkFlag,
Preferred = GrowFlag | ShrinkFlag,
Minimum = GrowFlag,
Maximum = ShrinkFlag,
Preferred = GrowFlag | ShrinkFlag,
MinimumExpanding = GrowFlag | ExpandFlag,
Expanding = GrowFlag | ShrinkFlag | ExpandFlag,
Ignored = ShrinkFlag | GrowFlag | IgnoreFlag,
Constrained = ConstrainedFlag
Expanding = GrowFlag | ShrinkFlag | ExpandFlag,
Ignored = ShrinkFlag | GrowFlag | IgnoreFlag,
Constrained = ConstrainedFlag,
ConstrainedMinimum = ConstrainedFlag | Minimum,
ConstrainedMaximum = ConstrainedFlag | Maximum,
ConstrainedPreferred = ConstrainedFlag | Preferred,
ConstrainedMinimumExpanding = ConstrainedFlag | MinimumExpanding,
ConstrainedExpanding = ConstrainedFlag | Expanding
};
Q_ENUM( Flag )
@ -63,8 +71,8 @@ class QSK_EXPORT QskSizePolicy
void setPolicy( Qt::Orientation, Policy );
private:
unsigned char m_horizontalPolicy : 4;
unsigned char m_verticalPolicy : 4;
unsigned char m_horizontalPolicy;
unsigned char m_verticalPolicy;
};
inline QskSizePolicy::QskSizePolicy()

View File

@ -253,11 +253,11 @@ class QskControlPrivate final : public QQuickItemPrivate
public:
QLocale locale;
QskSizePolicy sizePolicy;
quint16 controlFlags;
quint16 controlFlagsMask;
QskSizePolicy sizePolicy;
bool explicitLocale : 1;
bool autoFillBackground : 1;
@ -287,9 +287,9 @@ static inline void qskUpdateControlFlags( QskControl::Flags flags, QskControl* c
QskControlPrivate::QskControlPrivate()
: explicitSizeData( nullptr )
, sizePolicy( QskSizePolicy::Preferred, QskSizePolicy::Preferred )
, controlFlags( qskControlFlags() )
, controlFlagsMask( 0 )
, sizePolicy( QskSizePolicy::Preferred, QskSizePolicy::Preferred )
, explicitLocale( false )
, autoFillBackground( false )
, autoLayoutChildren( false )
@ -1154,7 +1154,7 @@ void QskControl::initSizePolicy(
}
}
void QskControl::setSizePolicy( const QskSizePolicy& policy )
void QskControl::setSizePolicy( QskSizePolicy policy )
{
Q_D( QskControl );
@ -1190,7 +1190,7 @@ void QskControl::setSizePolicy(
}
}
const QskSizePolicy& QskControl::sizePolicy() const
QskSizePolicy QskControl::sizePolicy() const
{
return d_func()->sizePolicy;
}
@ -1842,7 +1842,10 @@ void QskControl::updatePolish()
for ( auto child : children )
{
if ( !QQuickItemPrivate::get( child )->isTransparentForPositioner() )
{
// rect = QskLayoutConstraint::itemRect( info.item, rect, ... );
qskSetItemGeometry( child, rect );
}
}
}

View File

@ -149,10 +149,10 @@ class QSK_EXPORT QskControl : public QQuickItem, public QskSkinnable
Q_INVOKABLE bool testControlFlag( Flag ) const;
void setSizePolicy( QskSizePolicy::Policy, QskSizePolicy::Policy );
void setSizePolicy( const QskSizePolicy& );
void setSizePolicy( QskSizePolicy );
void setSizePolicy( Qt::Orientation, QskSizePolicy::Policy );
const QskSizePolicy& sizePolicy() const;
QskSizePolicy sizePolicy() const;
QskSizePolicy::Policy sizePolicy( Qt::Orientation ) const;
void setMinimumSize( const QSizeF& );