more C++11 specifier

This commit is contained in:
Uwe Rathmann 2020-05-04 08:59:44 +02:00
parent 8ab9c4cddb
commit cb43ac7dee
2 changed files with 31 additions and 32 deletions

View File

@ -54,18 +54,6 @@ void QskBoxShapeMetrics::setRadius( Qt::Corner corner, qreal radiusX, qreal radi
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
{
if ( m_sizeMode != Qt::RelativeSize )
@ -82,29 +70,29 @@ QskBoxShapeMetrics QskBoxShapeMetrics::toAbsolute( const QSizeF& size ) const no
{
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 ry = qskAbsoluted( size.height(), radii.height() );
const qreal rx = qskAbsoluted( size.width(), radius.width() );
const qreal ry = qskAbsoluted( size.height(), radius.height() );
switch ( m_aspectRatioMode )
{
case Qt::IgnoreAspectRatio:
{
radii.setWidth( rx );
radii.setHeight( ry );
radius.rwidth() = rx;
radius.rheight() = ry;
break;
}
case Qt::KeepAspectRatio:
{
radii.setWidth( std::min( rx, ry ) );
radii.setHeight( std::min( rx, ry ) );
radius.rwidth() = std::min( rx, ry );
radius.rheight() = std::min( rx, ry );
break;
}
case Qt::KeepAspectRatioByExpanding:
{
radii.setWidth( std::max( rx, ry ) );
radii.setHeight( std::max( rx, ry ) );
radius.rwidth() = std::max( rx, ry );
radius.rheight() = std::max( rx, ry );
break;
}
}
@ -118,16 +106,17 @@ QskBoxShapeMetrics QskBoxShapeMetrics::toAbsolute( const QSizeF& size ) const no
QskBoxShapeMetrics QskBoxShapeMetrics::interpolated(
const QskBoxShapeMetrics& to, qreal ratio ) const noexcept
{
// what about m_aspectRatioMode != to.m_aspectRatioMode ???
if ( ( *this == to ) || ( m_sizeMode != to.m_sizeMode ) )
return to;
QSizeF radii[ 4 ];
radii[ 0 ] = qskInterpolatedSize( m_radii[ 0 ], to.m_radii[ 0 ], ratio );
radii[ 1 ] = qskInterpolatedSize( m_radii[ 1 ], to.m_radii[ 1 ], ratio );
radii[ 2 ] = qskInterpolatedSize( m_radii[ 2 ], to.m_radii[ 2 ], ratio );
radii[ 3 ] = qskInterpolatedSize( m_radii[ 3 ], to.m_radii[ 3 ], ratio );
return QskBoxShapeMetrics( to.m_sizeMode, radii );
return QskBoxShapeMetrics(
qskInterpolatedSize( m_radii[ 0 ], to.m_radii[ 0 ], ratio ),
qskInterpolatedSize( m_radii[ 1 ], to.m_radii[ 1 ], ratio ),
qskInterpolatedSize( m_radii[ 2 ], to.m_radii[ 2 ], ratio ),
qskInterpolatedSize( m_radii[ 3 ], to.m_radii[ 3 ], ratio ),
to.m_sizeMode, to.m_aspectRatioMode );
}
QVariant QskBoxShapeMetrics::interpolate(

View File

@ -68,7 +68,7 @@ class QSK_EXPORT QskBoxShapeMetrics
QskBoxShapeMetrics toAbsolute( const QSizeF& ) const noexcept;
QskBoxShapeMetrics transposed() const noexcept;
constexpr QskBoxShapeMetrics transposed() const noexcept;
uint hash( uint seed = 0 ) const noexcept;
@ -77,10 +77,12 @@ class QSK_EXPORT QskBoxShapeMetrics
private:
inline constexpr QskBoxShapeMetrics(
Qt::SizeMode sizeMode, const QSizeF radii[ 4 ] ) noexcept
: m_radii{ radii[ 0 ], radii[ 1 ], radii[ 2 ], radii[ 3 ] }
const QSizeF& topLeft, const QSizeF& topRight,
const QSizeF& bottomLeft, const QSizeF& bottomRight,
Qt::SizeMode sizeMode, Qt::AspectRatioMode aspectRatioMode ) noexcept
: m_radii{ topLeft, topRight, bottomLeft, bottomRight }
, 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 ) ) );
}
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
QSK_EXPORT QDebug operator<<( QDebug, const QskBoxShapeMetrics& );