QskMargins improved
This commit is contained in:
parent
b8bbd3a135
commit
bb3ffc454f
|
@ -41,7 +41,12 @@ class QSK_EXPORT QskMargins : public QMarginsF
|
||||||
constexpr QskMargins rotated() const noexcept;
|
constexpr QskMargins rotated() const noexcept;
|
||||||
|
|
||||||
constexpr QskMargins translated( qreal dx, qreal dy ) const noexcept;
|
constexpr QskMargins translated( qreal dx, qreal dy ) const noexcept;
|
||||||
constexpr QskMargins expanded( qreal dx, qreal dy ) const noexcept;
|
|
||||||
|
constexpr QskMargins grownBy( qreal dx, qreal dy ) const noexcept;
|
||||||
|
constexpr QskMargins shrunkBy( qreal dx, qreal dy ) const noexcept;
|
||||||
|
|
||||||
|
constexpr QskMargins expandedTo( const QskMargins& ) const noexcept;
|
||||||
|
constexpr QskMargins boundedTo( const QskMargins& ) const noexcept;
|
||||||
|
|
||||||
void setMargins( qreal margin ) noexcept;
|
void setMargins( qreal margin ) noexcept;
|
||||||
void setMargins( qreal horizontal, qreal vertical ) noexcept;
|
void setMargins( qreal horizontal, qreal vertical ) noexcept;
|
||||||
|
@ -132,11 +137,35 @@ constexpr inline QskMargins QskMargins::translated( qreal dx, qreal dy ) const n
|
||||||
return QskMargins( left() + dx, top() + dy, right() - dx, bottom() - dy );
|
return QskMargins( left() + dx, top() + dy, right() - dx, bottom() - dy );
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr inline QskMargins QskMargins::expanded( qreal dx, qreal dy ) const noexcept
|
constexpr inline QskMargins QskMargins::grownBy( qreal dx, qreal dy ) const noexcept
|
||||||
{
|
{
|
||||||
return QskMargins( left() + dx, top() + dy, right() + dx, bottom() + dy );
|
return QskMargins( left() + dx, top() + dy, right() + dx, bottom() + dy );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr inline QskMargins QskMargins::shrunkBy( qreal dx, qreal dy ) const noexcept
|
||||||
|
{
|
||||||
|
return QskMargins( left() - dx, top() - dy, right() - dx, bottom() - dy );
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr inline QskMargins QskMargins::expandedTo( const QskMargins& other ) const noexcept
|
||||||
|
{
|
||||||
|
return QskMargins(
|
||||||
|
qMax( left(), other.left() ),
|
||||||
|
qMax( top(), other.top() ),
|
||||||
|
qMax( right(), other.right() ),
|
||||||
|
qMax( bottom(), other.bottom() )
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr inline QskMargins QskMargins::boundedTo( const QskMargins& other ) const noexcept
|
||||||
|
{
|
||||||
|
return QskMargins(
|
||||||
|
qMin( left(), other.left() ),
|
||||||
|
qMin( top(), other.top() ),
|
||||||
|
qMin( right(), other.right() ),
|
||||||
|
qMin( bottom(), other.bottom() )
|
||||||
|
);
|
||||||
|
}
|
||||||
constexpr inline qreal QskMargins::extent( Qt::Orientation orientation ) const noexcept
|
constexpr inline qreal QskMargins::extent( Qt::Orientation orientation ) const noexcept
|
||||||
{
|
{
|
||||||
return ( orientation == Qt::Horizontal ) ? width() : height();
|
return ( orientation == Qt::Horizontal ) ? width() : height();
|
||||||
|
|
|
@ -42,16 +42,12 @@ bool QskBox::hasPanel() const
|
||||||
|
|
||||||
void QskBox::setPadding( qreal padding )
|
void QskBox::setPadding( qreal padding )
|
||||||
{
|
{
|
||||||
setPadding( QMarginsF( padding, padding, padding, padding ) );
|
setPadding( QskMargins( padding ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskBox::setPadding( const QMarginsF& padding )
|
void QskBox::setPadding( const QMarginsF& padding )
|
||||||
{
|
{
|
||||||
const QMarginsF pd(
|
const auto pd = QskMargins().expandedTo( padding );
|
||||||
qMax( qreal( padding.left() ), qreal( 0.0 ) ),
|
|
||||||
qMax( qreal( padding.top() ), qreal( 0.0 ) ),
|
|
||||||
qMax( qreal( padding.right() ), qreal( 0.0 ) ),
|
|
||||||
qMax( qreal( padding.bottom() ), qreal( 0.0 ) ) );
|
|
||||||
|
|
||||||
if ( pd != paddingHint( Panel ) )
|
if ( pd != paddingHint( Panel ) )
|
||||||
{
|
{
|
||||||
|
@ -74,7 +70,7 @@ void QskBox::resetPadding()
|
||||||
if ( polishOnResize() || autoLayoutChildren() )
|
if ( polishOnResize() || autoLayoutChildren() )
|
||||||
polish();
|
polish();
|
||||||
|
|
||||||
Q_EMIT paddingChanged( padding() );
|
Q_EMIT paddingChanged( paddingHint( Panel ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,16 +172,12 @@ QskGradient QskControl::background() const
|
||||||
|
|
||||||
void QskControl::setMargins( qreal margin )
|
void QskControl::setMargins( qreal margin )
|
||||||
{
|
{
|
||||||
setMargins( QMarginsF( margin, margin, margin, margin ) );
|
setMargins( QskMargins( margin ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskControl::setMargins( const QMarginsF& margins )
|
void QskControl::setMargins( const QMarginsF& margins )
|
||||||
{
|
{
|
||||||
const QMarginsF m(
|
const auto m = QskMargins().expandedTo( margins );
|
||||||
qMax( qreal( margins.left() ), qreal( 0.0 ) ),
|
|
||||||
qMax( qreal( margins.top() ), qreal( 0.0 ) ),
|
|
||||||
qMax( qreal( margins.right() ), qreal( 0.0 ) ),
|
|
||||||
qMax( qreal( margins.bottom() ), qreal( 0.0 ) ) );
|
|
||||||
|
|
||||||
if ( m != this->margins() )
|
if ( m != this->margins() )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue