From 85d2f1cb61f372de5da1c237720c703b312dc60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Fri, 9 Nov 2012 15:36:44 +0100 Subject: [PATCH] Export QEasingCurve to scripted Effects That allows reference QEasingCurve::Type to be used in the animate functions. REVIEW: 107265 --- scripting/documentation-effect-global.xml | 8 ++++++++ scripting/scriptedeffect.cpp | 12 +++++++----- scripting/scriptedeffect.h | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/scripting/documentation-effect-global.xml b/scripting/documentation-effect-global.xml index e5440e0ba5..d08d5176bc 100644 --- a/scripting/documentation-effect-global.xml +++ b/scripting/documentation-effect-global.xml @@ -39,6 +39,14 @@ Provides access to enums defined in KWin::WorkspaceWrapper + + object + + + QEasingCurve + + Provides access to enums defined in QEasingCurve + diff --git a/scripting/scriptedeffect.cpp b/scripting/scriptedeffect.cpp index 4a7e8e1607..e9c0509108 100644 --- a/scripting/scriptedeffect.cpp +++ b/scripting/scriptedeffect.cpp @@ -91,7 +91,7 @@ QScriptValue kwinScriptScreenEdge(QScriptContext *context, QScriptEngine *engine struct AnimationSettings { AnimationEffect::Attribute a; - QEasingCurve curve; + QEasingCurve::Type curve; bool curveSet; FPx2 from; FPx2 to; @@ -102,6 +102,7 @@ struct AnimationSettings { AnimationSettings animationSettingsFromObject(QScriptValue &object) { AnimationSettings settings; + settings.curve = QEasingCurve::Linear; settings.valid = true; settings.curveSet = false; @@ -117,7 +118,7 @@ AnimationSettings animationSettingsFromObject(QScriptValue &object) QScriptValue curve = object.property("curve"); if (curve.isValid() && curve.isNumber()) { - settings.curve = QEasingCurve(static_cast(curve.toInt32())); + settings.curve = static_cast(curve.toInt32()); settings.curveSet = true; } @@ -163,7 +164,7 @@ QScriptValue kwinEffectAnimate(QScriptContext *context, QScriptEngine *engine) } const int duration = durationProperty.toInt32(); - QEasingCurve curve; + QEasingCurve::Type curve = QEasingCurve::Linear; QList settings; AnimationSettings globalSettings = animationSettingsFromObject(object); if (globalSettings.valid) { @@ -298,6 +299,7 @@ bool ScriptedEffect::init(const QString &effectName, const QString &pathToScript m_engine->globalObject().setProperty("effects", effectsObject, QScriptValue::Undeletable); m_engine->globalObject().setProperty("Effect", m_engine->newQMetaObject(&ScriptedEffect::staticMetaObject)); m_engine->globalObject().setProperty("KWin", m_engine->newQMetaObject(&WorkspaceWrapper::staticMetaObject)); + m_engine->globalObject().setProperty("QEasingCurve", m_engine->newQMetaObject(&QEasingCurve::staticMetaObject)); m_engine->globalObject().setProperty("effect", m_engine->newQObject(this, QScriptEngine::QtOwnership, QScriptEngine::ExcludeDeleteLater), QScriptValue::Undeletable); m_engine->globalObject().setProperty("AnimationData", m_engine->scriptValueFromQMetaObject()); MetaScripting::registration(m_engine); @@ -349,7 +351,7 @@ void ScriptedEffect::signalHandlerException(const QScriptValue &value) } } -void ScriptedEffect::animate(KWin::EffectWindow* w, KWin::AnimationEffect::Attribute a, int ms, KWin::FPx2 to, KWin::FPx2 from, KWin::AnimationData* data, QEasingCurve curve, int delay) +void ScriptedEffect::animate(KWin::EffectWindow* w, KWin::AnimationEffect::Attribute a, int ms, KWin::FPx2 to, KWin::FPx2 from, KWin::AnimationData* data, QEasingCurve::Type curve, int delay) { uint meta = 0; if (data) { @@ -375,7 +377,7 @@ void ScriptedEffect::animate(KWin::EffectWindow* w, KWin::AnimationEffect::Attri AnimationEffect::setMetaData(AnimationEffect::RelativeTargetY, data->relativeTargetY(), meta); } } - AnimationEffect::animate(w, a, meta, ms, to, curve, delay, from); + AnimationEffect::animate(w, a, meta, ms, to, QEasingCurve(curve), delay, from); } bool ScriptedEffect::isGrabbed(EffectWindow* w, ScriptedEffect::DataRole grabRole) diff --git a/scripting/scriptedeffect.h b/scripting/scriptedeffect.h index b080d75fa7..830997b50b 100644 --- a/scripting/scriptedeffect.h +++ b/scripting/scriptedeffect.h @@ -127,7 +127,7 @@ public: } public Q_SLOTS: - void animate(KWin::EffectWindow *w, Attribute a, int ms, KWin::FPx2 to, KWin::FPx2 from = KWin::FPx2(), KWin::AnimationData *data = NULL, QEasingCurve curve = QEasingCurve(), int delay = 0); + void animate(KWin::EffectWindow *w, Attribute a, int ms, KWin::FPx2 to, KWin::FPx2 from = KWin::FPx2(), KWin::AnimationData *data = NULL, QEasingCurve::Type curve = QEasingCurve::Linear, int delay = 0); Q_SIGNALS: /**