some constructors as constexpr

This commit is contained in:
Uwe Rathmann 2017-10-18 19:45:56 +02:00
parent 646207a8d8
commit 86895c2fed
2 changed files with 34 additions and 11 deletions

View File

@ -19,9 +19,11 @@ class QVariant;
class QSK_EXPORT QskBoxBorderMetrics
{
public:
QskBoxBorderMetrics();
QskBoxBorderMetrics( qreal width, Qt::SizeMode = Qt::AbsoluteSize );
QskBoxBorderMetrics( const QskMargins& widths, Qt::SizeMode sizeMode = Qt::AbsoluteSize );
constexpr QskBoxBorderMetrics();
constexpr QskBoxBorderMetrics( qreal width, Qt::SizeMode = Qt::AbsoluteSize );
constexpr QskBoxBorderMetrics( qreal left, qreal top,
qreal right, qreal bottom, Qt::SizeMode = Qt::AbsoluteSize );
constexpr QskBoxBorderMetrics( const QskMargins& widths, Qt::SizeMode sizeMode = Qt::AbsoluteSize );
~QskBoxBorderMetrics();
@ -52,24 +54,31 @@ private:
Qt::SizeMode m_sizeMode : 2;
};
inline QskBoxBorderMetrics::QskBoxBorderMetrics():
inline constexpr QskBoxBorderMetrics::QskBoxBorderMetrics():
m_sizeMode( Qt::AbsoluteSize )
{
}
inline QskBoxBorderMetrics::QskBoxBorderMetrics( qreal width, Qt::SizeMode sizeMode ):
inline constexpr QskBoxBorderMetrics::QskBoxBorderMetrics( qreal width, Qt::SizeMode sizeMode ):
m_widths( width ),
m_sizeMode( sizeMode )
{
}
inline QskBoxBorderMetrics::QskBoxBorderMetrics(
inline constexpr QskBoxBorderMetrics::QskBoxBorderMetrics(
const QskMargins& widths, Qt::SizeMode sizeMode ):
m_widths( widths ),
m_sizeMode( sizeMode )
{
}
inline constexpr QskBoxBorderMetrics::QskBoxBorderMetrics( qreal left, qreal top,
qreal right, qreal bottom, Qt::SizeMode sizeMode ):
m_widths( left, top, right, bottom ),
m_sizeMode( sizeMode )
{
}
inline bool QskBoxBorderMetrics::operator!=( const QskBoxBorderMetrics& other ) const
{
return !( *this == other );

View File

@ -19,7 +19,10 @@ class QMarginsF;
class QSK_EXPORT QskBoxShapeMetrics
{
public:
QskBoxShapeMetrics();
constexpr QskBoxShapeMetrics();
constexpr QskBoxShapeMetrics( qreal topLeft, qreal topRight,
qreal bottomLeft, qreal bottomRight, Qt::SizeMode = Qt::AbsoluteSize );
QskBoxShapeMetrics( qreal radius, Qt::SizeMode = Qt::AbsoluteSize );
QskBoxShapeMetrics( qreal radiusX, qreal radiusY, Qt::SizeMode = Qt::AbsoluteSize );
@ -72,9 +75,10 @@ public:
const QskBoxShapeMetrics&, qreal progress );
private:
QskBoxShapeMetrics( Qt::SizeMode sizeMode, const QSizeF radii[4] ):
inline constexpr QskBoxShapeMetrics( Qt::SizeMode sizeMode, const QSizeF radii[4] ):
m_radii( { radii[0], radii[1], radii[2], radii[3] } ),
m_sizeMode( sizeMode )
m_sizeMode( sizeMode ),
m_aspectRatioMode( Qt::KeepAspectRatio )
{
}
@ -83,9 +87,10 @@ private:
Qt::AspectRatioMode m_aspectRatioMode : 2;
};
inline QskBoxShapeMetrics::QskBoxShapeMetrics():
inline constexpr QskBoxShapeMetrics::QskBoxShapeMetrics():
m_radii( { { 0.0, 0.0 }, { 0.0, 0.0 }, { 0.0, 0.0 }, { 0.0, 0.0 } } ),
m_sizeMode( Qt::AbsoluteSize )
m_sizeMode( Qt::AbsoluteSize ),
m_aspectRatioMode( Qt::KeepAspectRatio )
{
}
@ -94,6 +99,15 @@ inline QskBoxShapeMetrics::QskBoxShapeMetrics( qreal radius, Qt::SizeMode sizeMo
{
}
inline constexpr QskBoxShapeMetrics::QskBoxShapeMetrics( qreal topLeft, qreal topRight,
qreal bottomLeft, qreal bottomRight, Qt::SizeMode sizeMode ):
m_radii( { { topLeft, topLeft }, { topRight, topRight },
{ bottomLeft, bottomLeft }, { bottomRight, bottomRight } } ),
m_sizeMode( sizeMode ),
m_aspectRatioMode( Qt::KeepAspectRatio )
{
}
inline bool QskBoxShapeMetrics::operator!=( const QskBoxShapeMetrics& other ) const
{
return !( *this == other );