make it possible to prefix anims

svn path=/trunk/KDE/kdelibs/; revision=1126034
This commit is contained in:
Aaron J. Seigo 2010-05-13 00:52:36 +00:00
parent ae9656bb59
commit eb8e81e27c
2 changed files with 6 additions and 3 deletions

View File

@ -49,6 +49,7 @@ namespace AnimationScriptEngine
QScriptEngine* inst = 0;
QHash<QString, QScriptValue> s_animFuncs;
QString s_prefix;
QScriptValue animation(const QString &anim)
{
@ -70,7 +71,7 @@ void clearAnimations()
QScriptValue registerAnimation(QScriptContext *context, QScriptEngine *engine)
{
if (context->argumentCount() > 1) {
const QString name = context->argument(0).toString();
const QString name = s_prefix + context->argument(0).toString();
if (!s_animFuncs.contains(name)) {
const QScriptValue func = context->argument(1);
@ -171,7 +172,7 @@ QScriptEngine *globalEngine()
return inst;
}
bool loadScript(const QString &path)
bool loadScript(const QString &path, const QString &prefix)
{
QFile file(path);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
@ -183,7 +184,9 @@ bool loadScript(const QString &path)
QString tmp(buffer.readAll());
QScriptEngine *engine = AnimationScriptEngine::globalEngine();
s_prefix = prefix;
QScriptValue def(engine->evaluate(tmp, path));
s_prefix.clear();
if (engine->hasUncaughtException()) {
const QScriptValue error = engine->uncaughtException();
QString file = error.property("fileName").toString();

View File

@ -38,7 +38,7 @@ void clearAnimations();
bool isAnimationRegistered(const QString &anim);
QScriptEngine* globalEngine();
QScriptValue animation(const QString &anim);
bool loadScript(const QString &path);
bool loadScript(const QString &path, const QString &prefix = QString());
}