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 ] ); 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(

View File

@ -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& );