QEasingCurve: reduce code duplication in setCurveShape()
Instead of creating an explicit QEasingCurve object in each switched-over case, extract the conversion between the enums involved into a helper and just call setEasingCurve() with the result (implicitly converted to QEasingCurve). Saves 0.5KiB in text size on optimized AMD64 Linux GCC 9.1 builds. Change-Id: I81b5d7199d9dd99ba3735c910a50e371e0b99838 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
bcf6f99237
commit
76be819345
|
|
@ -526,28 +526,24 @@ QTimeLine::CurveShape QTimeLine::curveShape() const
|
|||
return EaseInOutCurve;
|
||||
}
|
||||
|
||||
void QTimeLine::setCurveShape(CurveShape shape)
|
||||
static QEasingCurve::Type convert(QTimeLine::CurveShape shape)
|
||||
{
|
||||
switch (shape) {
|
||||
case EaseInOutCurve:
|
||||
setEasingCurve(QEasingCurve(QEasingCurve::InOutSine));
|
||||
break;
|
||||
case EaseInCurve:
|
||||
setEasingCurve(QEasingCurve(QEasingCurve::InCurve));
|
||||
break;
|
||||
case EaseOutCurve:
|
||||
setEasingCurve(QEasingCurve(QEasingCurve::OutCurve));
|
||||
break;
|
||||
case LinearCurve:
|
||||
setEasingCurve(QEasingCurve(QEasingCurve::Linear));
|
||||
break;
|
||||
case SineCurve:
|
||||
setEasingCurve(QEasingCurve(QEasingCurve::SineCurve));
|
||||
break;
|
||||
case CosineCurve:
|
||||
setEasingCurve(QEasingCurve(QEasingCurve::CosineCurve));
|
||||
break;
|
||||
#define CASE(x, y) case QTimeLine::x: return QEasingCurve::y
|
||||
CASE(EaseInOutCurve, InOutSine);
|
||||
CASE(EaseInCurve, InCurve);
|
||||
CASE(EaseOutCurve, OutCurve);
|
||||
CASE(LinearCurve, Linear);
|
||||
CASE(SineCurve, SineCurve);
|
||||
CASE(CosineCurve, CosineCurve);
|
||||
#undef CASE
|
||||
}
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
void QTimeLine::setCurveShape(CurveShape shape)
|
||||
{
|
||||
setEasingCurve(convert(shape));
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
|||
Loading…
Reference in New Issue