From 3ada6f78e99b01271d99f5769ee718a444164448 Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Sat, 4 Sep 2010 22:22:40 +0000 Subject: [PATCH] allow sub-packages from addons svn path=/trunk/KDE/kdebase/runtime/; revision=1171702 --- .../dataengine/javascriptdataengine.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scriptengines/javascript/dataengine/javascriptdataengine.cpp b/scriptengines/javascript/dataengine/javascriptdataengine.cpp index 7ce80ca9c..537a434f6 100644 --- a/scriptengines/javascript/dataengine/javascriptdataengine.cpp +++ b/scriptengines/javascript/dataengine/javascriptdataengine.cpp @@ -312,12 +312,26 @@ Plasma::Service *JavaScriptDataEngine::serviceForSource(const QString &source) QString JavaScriptDataEngine::filePath(const char *type, const QString &file) const { + QScriptContext *c = m_qscriptEngine->currentContext(); + while (c) { + QScriptValue v = c->activationObject().property("__plasma_package"); + //kDebug() << "variant in parent context?" << v.isVariant(); + if (v.isVariant()) { + const QString path = v.toVariant().value().filePath(type, file); + if (!path.isEmpty()) { + return path; + } + } + + c = c->parentContext(); + } + return package()->filePath(type, file); } bool JavaScriptDataEngine::include(const QString &script) { - const QString path = package()->filePath("scripts", script); + const QString path = filePath("scripts", script); if (path.isEmpty()) { return false; }