make addon packages work with Svg objects as well (and just about everything else that we might need in future); need to replicate this for DataEngine and Runner now.
svn path=/trunk/KDE/kdebase/runtime/; revision=1171497
This commit is contained in:
parent
de6c425f17
commit
603096a318
@ -200,16 +200,25 @@ QString AppletInterface::file(const QString &fileType)
|
||||
|
||||
QString AppletInterface::file(const QString &fileType, const QString &filePath)
|
||||
{
|
||||
QScriptContext *c = context();
|
||||
if (c && c->parentContext()) {
|
||||
QScriptValue v = c->parentContext()->activationObject().property("__plasma_package");
|
||||
//kDebug() << "variant in parent context?" << v.isVariant() << t.restart();
|
||||
return file(fileType, filePath, context());
|
||||
}
|
||||
|
||||
QString AppletInterface::file(const QString &fileType, const QString &filePath, QScriptContext *c)
|
||||
{
|
||||
while (c) {
|
||||
QScriptValue v = c->activationObject().property("__plasma_package");
|
||||
//kDebug() << "variant in parent context?" << v.isVariant();
|
||||
if (v.isVariant()) {
|
||||
return v.toVariant().value<Plasma::Package>().filePath(fileType.toLocal8Bit().constData(), filePath);
|
||||
//kDebug() << "path to package is" << p.path();
|
||||
const QString path = v.toVariant().value<Plasma::Package>().filePath(fileType.toLocal8Bit().constData(), filePath);
|
||||
if (!path.isEmpty()) {
|
||||
return path;
|
||||
}
|
||||
}
|
||||
|
||||
c = c->parentContext();
|
||||
}
|
||||
|
||||
//kDebug() << "old school attempt";
|
||||
return m_appletScriptEngine->package()->filePath(fileType.toLocal8Bit().constData(), filePath);
|
||||
}
|
||||
|
||||
|
@ -268,6 +268,7 @@ enum IntervalAlignment {
|
||||
|
||||
Q_INVOKABLE QString file(const QString &fileType);
|
||||
Q_INVOKABLE QString file(const QString &fileType, const QString &filePath);
|
||||
QString file(const QString &fileType, const QString &filePath, QScriptContext *context);
|
||||
|
||||
Q_INVOKABLE bool include(const QString &script);
|
||||
|
||||
|
@ -698,16 +698,16 @@ QScriptValue SimpleJavaScriptApplet::loadui(QScriptContext *context, QScriptEngi
|
||||
return engine->newQObject(w, QScriptEngine::AutoOwnership);
|
||||
}
|
||||
|
||||
QString SimpleJavaScriptApplet::findSvg(QScriptEngine *engine, const QString &file)
|
||||
QString SimpleJavaScriptApplet::findSvg(QScriptContext *context, QScriptEngine *engine, const QString &file)
|
||||
{
|
||||
AppletInterface *interface = AppletInterface::extract(engine);
|
||||
if (!interface) {
|
||||
return file;
|
||||
}
|
||||
|
||||
QString path = interface->file("images", file + ".svg");
|
||||
QString path = interface->file("images", file + ".svg", context);
|
||||
if (path.isEmpty()) {
|
||||
path = interface->file("images", file + ".svgz");
|
||||
path = interface->file("images", file + ".svgz", context);
|
||||
|
||||
if (path.isEmpty()) {
|
||||
return file;
|
||||
@ -727,7 +727,7 @@ QScriptValue SimpleJavaScriptApplet::newPlasmaSvg(QScriptContext *context, QScri
|
||||
bool parentedToApplet = false;
|
||||
QGraphicsWidget *parent = extractParent(context, engine, 1, &parentedToApplet);
|
||||
Svg *svg = new Svg(parent);
|
||||
svg->setImagePath(parentedToApplet ? findSvg(engine, filename) : filename);
|
||||
svg->setImagePath(parentedToApplet ? findSvg(context, engine, filename) : filename);
|
||||
QScriptValue fun = engine->newQObject(svg);
|
||||
ScriptEnv::registerEnums(fun, *svg->metaObject());
|
||||
return fun;
|
||||
@ -744,7 +744,7 @@ QScriptValue SimpleJavaScriptApplet::newPlasmaFrameSvg(QScriptContext *context,
|
||||
bool parentedToApplet = false;
|
||||
QGraphicsWidget *parent = extractParent(context, engine, 1, &parentedToApplet);
|
||||
FrameSvg *frameSvg = new FrameSvg(parent);
|
||||
frameSvg->setImagePath(parentedToApplet ? filename : findSvg(engine, filename));
|
||||
frameSvg->setImagePath(parentedToApplet ? filename : findSvg(context, engine, filename));
|
||||
|
||||
QScriptValue fun = engine->newQObject(frameSvg);
|
||||
ScriptEnv::registerEnums(fun, *frameSvg->metaObject());
|
||||
|
@ -80,7 +80,7 @@ private:
|
||||
QScriptValue createWheelEventObject(QGraphicsSceneWheelEvent *event);
|
||||
static void populateAnimationsHash();
|
||||
|
||||
static QString findSvg(QScriptEngine *engine, const QString &file);
|
||||
static QString findSvg(QScriptContext *context, QScriptEngine *engine, const QString &file);
|
||||
static QScriptValue animation(QScriptContext *context, QScriptEngine *engine);
|
||||
static QScriptValue animationGroup(QScriptContext *context, QScriptEngine *engine);
|
||||
static QScriptValue parallelAnimationGroup(QScriptContext *context, QScriptEngine *engine);
|
||||
|
Loading…
x
Reference in New Issue
Block a user