[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/runtime/plasma/scriptengines/javascript/plasmoid
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-10-23 17:30:11
Message-ID: 20101023173011.06721AC897 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1189005 by mart:

loadService() function to load services without dataengines.
will be propagated to the js appletscript too


 M  +20 -0     declarativeappletscript.cpp  
 M  +1 -0      declarativeappletscript.h  


--- trunk/KDE/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/declarativeappletscript.cpp \
#1189004:1189005 @@ -368,6 +368,7 @@
     bindI18N(m_engine);
     global.setProperty("dataEngine", \
                m_engine->newFunction(DeclarativeAppletScript::dataEngine));
     global.setProperty("service", \
m_engine->newFunction(DeclarativeAppletScript::service)); +    \
global.setProperty("loadService", \
m_engine->newFunction(DeclarativeAppletScript::loadService));  
     //Add stuff from Qt
     ByteArrayClass *baClass = new ByteArrayClass(m_engine);
@@ -423,6 +424,25 @@
     return engine->newQObject(service, QScriptEngine::AutoOwnership);
 }
 
+QScriptValue DeclarativeAppletScript::loadService(QScriptContext *context, \
QScriptEngine *engine) +{
+    if (context->argumentCount() != 1) {
+        return context->throwError(i18n("service() takes one argument"));
+    }
+
+    QString pluginName = context->argument(0).toString();
+
+    AppletInterface *interface = AppletInterface::extract(engine);
+    if (!interface) {
+        return context->throwError(i18n("Could not extract the Applet"));
+    }
+
+    Plasma::Service *service = Plasma::Service::load(pluginName, interface);
+
+    //kDebug( )<< "lets try to get" << source << "from" << dataEngine;
+    return engine->newQObject(service, QScriptEngine::AutoOwnership);
+}
+
 void DeclarativeAppletScript::setEngine(QScriptValue &val)
 {
     if (val.engine() == m_engine) {
--- trunk/KDE/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/declarativeappletscript.h \
#1189004:1189005 @@ -67,6 +67,7 @@
     static QScriptValue newPlasmaExtenderItem(QScriptContext *context, QScriptEngine \
                *engine);
     static QScriptValue dataEngine(QScriptContext *context, QScriptEngine *engine);
     static QScriptValue service(QScriptContext *context, QScriptEngine *engine);
+    static QScriptValue loadService(QScriptContext *context, QScriptEngine *engine);
 
 public Q_SLOTS:
     void dataUpdated(const QString &name, const Plasma::DataEngine::Data &data);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic