[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-22 10:12:36
Message-ID: 20101022101236.121C1AC897 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1188406 by mart:
add loadUi from the js engine
M +26 -0 declarativeappletscript.cpp
M +1 -0 declarativeappletscript.h
--- trunk/KDE/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/declarativeappletscript.cpp \
#1188405:1188406 @@ -22,10 +22,13 @@
#include <QDeclarativeContext>
#include <QDeclarativeEngine>
#include <QDeclarativeExpression>
+#include <QFile>
#include <QGraphicsLinearLayout>
#include <QScriptEngine>
#include <QScriptValueIterator>
#include <QTimer>
+#include <QUiLoader>
+#include <QWidget>
#include <KConfigGroup>
#include <KDebug>
@@ -152,6 +155,25 @@
m_env->callEventListeners("configchanged");
}
+QScriptValue DeclarativeAppletScript::loadui(QScriptContext *context, QScriptEngine \
*engine) +{
+ if (context->argumentCount() != 1) {
+ return context->throwError(i18n("loadui() takes one argument"));
+ }
+
+ QString filename = context->argument(0).toString();
+ QFile f(filename);
+ if (!f.open(QIODevice::ReadOnly)) {
+ return context->throwError(i18n("Unable to open '%1'",filename));
+ }
+
+ QUiLoader loader;
+ QWidget *w = loader.load(&f);
+ f.close();
+
+ return engine->newQObject(w, QScriptEngine::AutoOwnership);
+}
+
QScriptValue DeclarativeAppletScript::newPlasmaSvg(QScriptContext *context, \
QScriptEngine *engine) {
if (context->argumentCount() == 0) {
@@ -339,6 +361,10 @@
}
global.setProperty("startupArguments", args);
+ // Add a global loadui method for ui files
+ QScriptValue fun = m_engine->newFunction(DeclarativeAppletScript::loadui);
+ global.setProperty("loadui", fun);
+
bindI18N(m_engine);
global.setProperty("dataEngine", \
m_engine->newFunction(DeclarativeAppletScript::dataEngine));
global.setProperty("service", \
m_engine->newFunction(DeclarativeAppletScript::service));
--- trunk/KDE/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/declarativeappletscript.h \
#1188405:1188406 @@ -61,6 +61,7 @@
QScriptValue variantToScriptValue(QVariant var);
+ static QScriptValue loadui(QScriptContext *context, QScriptEngine *engine);
static QScriptValue newPlasmaSvg(QScriptContext *context, QScriptEngine \
*engine);
static QScriptValue newPlasmaFrameSvg(QScriptContext *context, QScriptEngine \
*engine);
static QScriptValue newPlasmaExtenderItem(QScriptContext *context, QScriptEngine \
*engine);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic