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 class QSK_EXPORT QskBoxBorderMetrics
{ {
public: public:
QskBoxBorderMetrics(); constexpr QskBoxBorderMetrics();
QskBoxBorderMetrics( qreal width, Qt::SizeMode = Qt::AbsoluteSize ); constexpr QskBoxBorderMetrics( qreal width, Qt::SizeMode = Qt::AbsoluteSize );
QskBoxBorderMetrics( const QskMargins& widths, Qt::SizeMode 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(); ~QskBoxBorderMetrics();
@ -52,24 +54,31 @@ private:
Qt::SizeMode m_sizeMode : 2; Qt::SizeMode m_sizeMode : 2;
}; };
inline QskBoxBorderMetrics::QskBoxBorderMetrics(): inline constexpr QskBoxBorderMetrics::QskBoxBorderMetrics():
m_sizeMode( Qt::AbsoluteSize ) 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_widths( width ),
m_sizeMode( sizeMode ) m_sizeMode( sizeMode )
{ {
} }
inline QskBoxBorderMetrics::QskBoxBorderMetrics( inline constexpr QskBoxBorderMetrics::QskBoxBorderMetrics(
const QskMargins& widths, Qt::SizeMode sizeMode ): const QskMargins& widths, Qt::SizeMode sizeMode ):
m_widths( widths ), m_widths( widths ),
m_sizeMode( sizeMode ) 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 inline bool QskBoxBorderMetrics::operator!=( const QskBoxBorderMetrics& other ) const
{ {
return !( *this == other ); return !( *this == other );

View File

@ -19,7 +19,10 @@ class QMarginsF;
class QSK_EXPORT QskBoxShapeMetrics class QSK_EXPORT QskBoxShapeMetrics
{ {
public: 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 radius, Qt::SizeMode = Qt::AbsoluteSize );
QskBoxShapeMetrics( qreal radiusX, qreal radiusY, Qt::SizeMode = Qt::AbsoluteSize ); QskBoxShapeMetrics( qreal radiusX, qreal radiusY, Qt::SizeMode = Qt::AbsoluteSize );
@ -72,9 +75,10 @@ public:
const QskBoxShapeMetrics&, qreal progress ); const QskBoxShapeMetrics&, qreal progress );
private: 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_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; 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_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 inline bool QskBoxShapeMetrics::operator!=( const QskBoxShapeMetrics& other ) const
{ {
return !( *this == other ); return !( *this == other );