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)
|
QString AppletInterface::file(const QString &fileType, const QString &filePath)
|
||||||
{
|
{
|
||||||
QScriptContext *c = context();
|
return file(fileType, filePath, context());
|
||||||
if (c && c->parentContext()) {
|
}
|
||||||
QScriptValue v = c->parentContext()->activationObject().property("__plasma_package");
|
|
||||||
//kDebug() << "variant in parent context?" << v.isVariant() << t.restart();
|
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()) {
|
if (v.isVariant()) {
|
||||||
return v.toVariant().value<Plasma::Package>().filePath(fileType.toLocal8Bit().constData(), filePath);
|
const QString path = v.toVariant().value<Plasma::Package>().filePath(fileType.toLocal8Bit().constData(), filePath);
|
||||||
//kDebug() << "path to package is" << p.path();
|
if (!path.isEmpty()) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c = c->parentContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kDebug() << "old school attempt";
|
||||||
return m_appletScriptEngine->package()->filePath(fileType.toLocal8Bit().constData(), filePath);
|
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);
|
||||||
Q_INVOKABLE QString file(const QString &fileType, const QString &filePath);
|
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);
|
Q_INVOKABLE bool include(const QString &script);
|
||||||
|
|
||||||
|
@ -698,16 +698,16 @@ QScriptValue SimpleJavaScriptApplet::loadui(QScriptContext *context, QScriptEngi
|
|||||||
return engine->newQObject(w, QScriptEngine::AutoOwnership);
|
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);
|
AppletInterface *interface = AppletInterface::extract(engine);
|
||||||
if (!interface) {
|
if (!interface) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString path = interface->file("images", file + ".svg");
|
QString path = interface->file("images", file + ".svg", context);
|
||||||
if (path.isEmpty()) {
|
if (path.isEmpty()) {
|
||||||
path = interface->file("images", file + ".svgz");
|
path = interface->file("images", file + ".svgz", context);
|
||||||
|
|
||||||
if (path.isEmpty()) {
|
if (path.isEmpty()) {
|
||||||
return file;
|
return file;
|
||||||
@ -727,7 +727,7 @@ QScriptValue SimpleJavaScriptApplet::newPlasmaSvg(QScriptContext *context, QScri
|
|||||||
bool parentedToApplet = false;
|
bool parentedToApplet = false;
|
||||||
QGraphicsWidget *parent = extractParent(context, engine, 1, &parentedToApplet);
|
QGraphicsWidget *parent = extractParent(context, engine, 1, &parentedToApplet);
|
||||||
Svg *svg = new Svg(parent);
|
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);
|
QScriptValue fun = engine->newQObject(svg);
|
||||||
ScriptEnv::registerEnums(fun, *svg->metaObject());
|
ScriptEnv::registerEnums(fun, *svg->metaObject());
|
||||||
return fun;
|
return fun;
|
||||||
@ -744,7 +744,7 @@ QScriptValue SimpleJavaScriptApplet::newPlasmaFrameSvg(QScriptContext *context,
|
|||||||
bool parentedToApplet = false;
|
bool parentedToApplet = false;
|
||||||
QGraphicsWidget *parent = extractParent(context, engine, 1, &parentedToApplet);
|
QGraphicsWidget *parent = extractParent(context, engine, 1, &parentedToApplet);
|
||||||
FrameSvg *frameSvg = new FrameSvg(parent);
|
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);
|
QScriptValue fun = engine->newQObject(frameSvg);
|
||||||
ScriptEnv::registerEnums(fun, *frameSvg->metaObject());
|
ScriptEnv::registerEnums(fun, *frameSvg->metaObject());
|
||||||
|
@ -80,7 +80,7 @@ private:
|
|||||||
QScriptValue createWheelEventObject(QGraphicsSceneWheelEvent *event);
|
QScriptValue createWheelEventObject(QGraphicsSceneWheelEvent *event);
|
||||||
static void populateAnimationsHash();
|
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 animation(QScriptContext *context, QScriptEngine *engine);
|
||||||
static QScriptValue animationGroup(QScriptContext *context, QScriptEngine *engine);
|
static QScriptValue animationGroup(QScriptContext *context, QScriptEngine *engine);
|
||||||
static QScriptValue parallelAnimationGroup(QScriptContext *context, QScriptEngine *engine);
|
static QScriptValue parallelAnimationGroup(QScriptContext *context, QScriptEngine *engine);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user