more C++11 specifier
This commit is contained in:
parent
8ab9c4cddb
commit
cb43ac7dee
@ -54,18 +54,6 @@ void QskBoxShapeMetrics::setRadius( Qt::Corner corner, qreal radiusX, qreal radi
|
|||||||
qskSetRadius( radiusX, radiusY, m_radii[ corner ] );
|
qskSetRadius( radiusX, radiusY, m_radii[ corner ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskBoxShapeMetrics QskBoxShapeMetrics::transposed() const noexcept
|
|
||||||
{
|
|
||||||
QskBoxShapeMetrics other;
|
|
||||||
|
|
||||||
for ( int i = 0; i < 4; i++ )
|
|
||||||
other.m_radii[ i ] = m_radii[ i ].transposed();
|
|
||||||
|
|
||||||
other.m_sizeMode = m_sizeMode;
|
|
||||||
|
|
||||||
return other;
|
|
||||||
}
|
|
||||||
|
|
||||||
QskBoxShapeMetrics QskBoxShapeMetrics::toAbsolute( const QSizeF& size ) const noexcept
|
QskBoxShapeMetrics QskBoxShapeMetrics::toAbsolute( const QSizeF& size ) const noexcept
|
||||||
{
|
{
|
||||||
if ( m_sizeMode != Qt::RelativeSize )
|
if ( m_sizeMode != Qt::RelativeSize )
|
||||||
@ -82,29 +70,29 @@ QskBoxShapeMetrics QskBoxShapeMetrics::toAbsolute( const QSizeF& size ) const no
|
|||||||
{
|
{
|
||||||
for ( int i = 0; i < 4; i++ )
|
for ( int i = 0; i < 4; i++ )
|
||||||
{
|
{
|
||||||
auto& radii = absoluted.m_radii[ i ];
|
auto& radius = absoluted.m_radii[ i ];
|
||||||
|
|
||||||
const qreal rx = qskAbsoluted( size.width(), radii.width() );
|
const qreal rx = qskAbsoluted( size.width(), radius.width() );
|
||||||
const qreal ry = qskAbsoluted( size.height(), radii.height() );
|
const qreal ry = qskAbsoluted( size.height(), radius.height() );
|
||||||
|
|
||||||
switch ( m_aspectRatioMode )
|
switch ( m_aspectRatioMode )
|
||||||
{
|
{
|
||||||
case Qt::IgnoreAspectRatio:
|
case Qt::IgnoreAspectRatio:
|
||||||
{
|
{
|
||||||
radii.setWidth( rx );
|
radius.rwidth() = rx;
|
||||||
radii.setHeight( ry );
|
radius.rheight() = ry;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::KeepAspectRatio:
|
case Qt::KeepAspectRatio:
|
||||||
{
|
{
|
||||||
radii.setWidth( std::min( rx, ry ) );
|
radius.rwidth() = std::min( rx, ry );
|
||||||
radii.setHeight( std::min( rx, ry ) );
|
radius.rheight() = std::min( rx, ry );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::KeepAspectRatioByExpanding:
|
case Qt::KeepAspectRatioByExpanding:
|
||||||
{
|
{
|
||||||
radii.setWidth( std::max( rx, ry ) );
|
radius.rwidth() = std::max( rx, ry );
|
||||||
radii.setHeight( std::max( rx, ry ) );
|
radius.rheight() = std::max( rx, ry );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -118,16 +106,17 @@ QskBoxShapeMetrics QskBoxShapeMetrics::toAbsolute( const QSizeF& size ) const no
|
|||||||
QskBoxShapeMetrics QskBoxShapeMetrics::interpolated(
|
QskBoxShapeMetrics QskBoxShapeMetrics::interpolated(
|
||||||
const QskBoxShapeMetrics& to, qreal ratio ) const noexcept
|
const QskBoxShapeMetrics& to, qreal ratio ) const noexcept
|
||||||
{
|
{
|
||||||
|
// what about m_aspectRatioMode != to.m_aspectRatioMode ???
|
||||||
|
|
||||||
if ( ( *this == to ) || ( m_sizeMode != to.m_sizeMode ) )
|
if ( ( *this == to ) || ( m_sizeMode != to.m_sizeMode ) )
|
||||||
return to;
|
return to;
|
||||||
|
|
||||||
QSizeF radii[ 4 ];
|
return QskBoxShapeMetrics(
|
||||||
radii[ 0 ] = qskInterpolatedSize( m_radii[ 0 ], to.m_radii[ 0 ], ratio );
|
qskInterpolatedSize( m_radii[ 0 ], to.m_radii[ 0 ], ratio ),
|
||||||
radii[ 1 ] = qskInterpolatedSize( m_radii[ 1 ], to.m_radii[ 1 ], ratio );
|
qskInterpolatedSize( m_radii[ 1 ], to.m_radii[ 1 ], ratio ),
|
||||||
radii[ 2 ] = qskInterpolatedSize( m_radii[ 2 ], to.m_radii[ 2 ], ratio );
|
qskInterpolatedSize( m_radii[ 2 ], to.m_radii[ 2 ], ratio ),
|
||||||
radii[ 3 ] = qskInterpolatedSize( m_radii[ 3 ], to.m_radii[ 3 ], ratio );
|
qskInterpolatedSize( m_radii[ 3 ], to.m_radii[ 3 ], ratio ),
|
||||||
|
to.m_sizeMode, to.m_aspectRatioMode );
|
||||||
return QskBoxShapeMetrics( to.m_sizeMode, radii );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant QskBoxShapeMetrics::interpolate(
|
QVariant QskBoxShapeMetrics::interpolate(
|
||||||
|
@ -68,7 +68,7 @@ class QSK_EXPORT QskBoxShapeMetrics
|
|||||||
|
|
||||||
QskBoxShapeMetrics toAbsolute( const QSizeF& ) const noexcept;
|
QskBoxShapeMetrics toAbsolute( const QSizeF& ) const noexcept;
|
||||||
|
|
||||||
QskBoxShapeMetrics transposed() const noexcept;
|
constexpr QskBoxShapeMetrics transposed() const noexcept;
|
||||||
|
|
||||||
uint hash( uint seed = 0 ) const noexcept;
|
uint hash( uint seed = 0 ) const noexcept;
|
||||||
|
|
||||||
@ -77,10 +77,12 @@ class QSK_EXPORT QskBoxShapeMetrics
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
inline constexpr QskBoxShapeMetrics(
|
inline constexpr QskBoxShapeMetrics(
|
||||||
Qt::SizeMode sizeMode, const QSizeF radii[ 4 ] ) noexcept
|
const QSizeF& topLeft, const QSizeF& topRight,
|
||||||
: m_radii{ radii[ 0 ], radii[ 1 ], radii[ 2 ], radii[ 3 ] }
|
const QSizeF& bottomLeft, const QSizeF& bottomRight,
|
||||||
|
Qt::SizeMode sizeMode, Qt::AspectRatioMode aspectRatioMode ) noexcept
|
||||||
|
: m_radii{ topLeft, topRight, bottomLeft, bottomRight }
|
||||||
, m_sizeMode( sizeMode )
|
, m_sizeMode( sizeMode )
|
||||||
, m_aspectRatioMode( Qt::KeepAspectRatio )
|
, m_aspectRatioMode( aspectRatioMode )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,6 +229,14 @@ inline constexpr bool QskBoxShapeMetrics::isRectangle() const noexcept
|
|||||||
&& ( ( m_radii[ 3 ].width() <= 0.0 ) && ( m_radii[ 3 ].height() <= 0.0 ) ) );
|
&& ( ( m_radii[ 3 ].width() <= 0.0 ) && ( m_radii[ 3 ].height() <= 0.0 ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline constexpr QskBoxShapeMetrics QskBoxShapeMetrics::transposed() const noexcept
|
||||||
|
{
|
||||||
|
return QskBoxShapeMetrics(
|
||||||
|
m_radii[ 0 ].transposed(), m_radii[ 1 ].transposed(),
|
||||||
|
m_radii[ 2 ].transposed(), m_radii[ 3 ].transposed(),
|
||||||
|
m_sizeMode, m_aspectRatioMode );
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG_STREAM
|
#ifndef QT_NO_DEBUG_STREAM
|
||||||
|
|
||||||
QSK_EXPORT QDebug operator<<( QDebug, const QskBoxShapeMetrics& );
|
QSK_EXPORT QDebug operator<<( QDebug, const QskBoxShapeMetrics& );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user