diff --git a/scriptengines/javascript/simplebindings/easingcurve.cpp b/scriptengines/javascript/simplebindings/easingcurve.cpp index bf74138bd..8bd0a5eb9 100644 --- a/scriptengines/javascript/simplebindings/easingcurve.cpp +++ b/scriptengines/javascript/simplebindings/easingcurve.cpp @@ -17,6 +17,7 @@ */ #include +#include #include #include #include @@ -55,11 +56,18 @@ static QScriptValue type(QScriptContext *ctx, QScriptEngine *eng) if (ctx->argumentCount()) { QScriptValue arg = ctx->argument(0); + + qint32 type = -1; if (arg.isNumber()) { - qint32 type = arg.toInt32(); - if (type > -1 && type < QEasingCurve::Custom) { - self->setType(static_cast(type)); - } + type = arg.toInt32(); + } else if (arg.isString()) { + QMetaObject meta = QEasingCurve::staticMetaObject; + QMetaEnum easingCurveEnum = meta.enumerator(meta.indexOfEnumerator("Type")); + + type = easingCurveEnum.keyToValue(arg.toString().toAscii().data()); + } + if (type > -1 && type < QEasingCurve::Custom) { + self->setType(static_cast(type)); } }