allow clearing the animations, checking for whether an animation is registered and make it first-come, first-serve to avoid anims overriding each other

svn path=/trunk/KDE/kdelibs/; revision=1120236
This commit is contained in:
Aaron J. Seigo 2010-04-28 17:38:27 +00:00
parent b9d926ac63
commit 03bc2d587e
2 changed files with 20 additions and 3 deletions

View File

@ -38,13 +38,28 @@ QScriptValue animation(const QString &anim)
return s_animFuncs.value(anim);
}
bool isAnimationRegistered(const QString &anim)
{
return s_animFuncs.contains(anim);
}
void clearAnimations()
{
s_animFuncs.clear();
delete inst;
inst = 0;
}
QScriptValue registerAnimation(QScriptContext *context, QScriptEngine *engine)
{
if (context->argumentCount() > 1) {
const QString name = context->argument(0).toString();
const QScriptValue func = context->argument(1);
if (func.isFunction()) {
s_animFuncs.insert(name, func);
if (!s_animFuncs.contains(name)) {
const QScriptValue func = context->argument(1);
if (func.isFunction()) {
s_animFuncs.insert(name, func);
}
}
}

View File

@ -33,6 +33,8 @@ namespace Plasma
namespace AnimationScriptEngine
{
void clearAnimations();
bool isAnimationRegistered(const QString &anim);
QScriptEngine* globalEngine();
QScriptValue animation(const QString &anim);