[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/libs/plasmagenericshell/scripting
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2011-01-15 21:36:52
Message-ID: 20110115213652.91A9BAC8B4 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1214674 by aseigo:
wallpaperPlugins
M +35 -5 scriptengine.cpp
M +1 -0 scriptengine.h
--- trunk/KDE/kdebase/workspace/libs/plasmagenericshell/scripting/scriptengine.cpp #1214673:1214674
@@ -39,6 +39,7 @@
#include <Plasma/Containment>
#include <Plasma/Corona>
#include <Plasma/Package>
+#include <Plasma/Wallpaper>
#include "appinterface.h"
#include "containment.h"
@@ -479,12 +480,12 @@
{
Q_UNUSED(engine)
if (context->argumentCount() == 0) {
- return QString();
+ return QDir::homePath();
}
const QString type = context->argument(0).toString();
if (type.isEmpty()) {
- return QString();
+ return QDir::homePath();
}
if (context->argumentCount() > 1) {
@@ -492,9 +493,7 @@
return KStandardDirs::locateLocal(type.toLatin1(), filename);
}
- if (type.compare("home", Qt::CaseInsensitive) == 0) {
- return QDir::homePath();
- } else if (type.compare("desktop", Qt::CaseInsensitive) == 0) {
+ if (type.compare("desktop", Qt::CaseInsensitive) == 0) {
return KGlobalSettings::desktopPath();
} else if (type.compare("autostart", Qt::CaseInsensitive) == 0) {
return KGlobalSettings::autostartPath();
@@ -513,6 +512,36 @@
return QString();
}
+QScriptValue ScriptEngine::wallpaperPlugins(QScriptContext *context, QScriptEngine *engine)
+{
+ Q_UNUSED(engine)
+
+ QString formFactor;
+ if (context->argumentCount() > 0) {
+ formFactor = context->argument(0).toString();
+ }
+
+ QString constraint;
+ if (!formFactor.isEmpty()) {
+ constraint.append("[X-Plasma-FormFactors] ~~ '").append(formFactor).append("'");
+ }
+
+ KService::List services = KServiceTypeTrader::self()->query("Plasma/Wallpaper", constraint);
+ QScriptValue rv = engine->newArray(services.size());
+ foreach (const KService::Ptr service, services) {
+ QList<KServiceAction> modeActions = service->actions();
+ QScriptValue modes = engine->newArray(modeActions.size());
+ int i = 0;
+ foreach (const KServiceAction &action, modeActions) {
+ modes.setProperty(i++, action.name());
+ }
+
+ rv.setProperty(service->name(), modes);
+ }
+
+ return rv;
+}
+
void ScriptEngine::setupEngine()
{
QScriptValue v = globalObject();
@@ -539,6 +568,7 @@
m_scriptSelf.setProperty("defaultApplication", newFunction(ScriptEngine::defaultApplication));
m_scriptSelf.setProperty("userDataPath", newFunction(ScriptEngine::userDataPath));
m_scriptSelf.setProperty("applicationPath", newFunction(ScriptEngine::applicationPath));
+ m_scriptSelf.setProperty("wallpaperPlugins", newFunction(ScriptEngine::wallpaperPlugins));
setGlobalObject(m_scriptSelf);
}
--- trunk/KDE/kdebase/workspace/libs/plasmagenericshell/scripting/scriptengine.h #1214673:1214674
@@ -80,6 +80,7 @@
static QScriptValue defaultApplication(QScriptContext *context, QScriptEngine *engine);
static QScriptValue applicationPath(QScriptContext *context, QScriptEngine *engine);
static QScriptValue userDataPath(QScriptContext *context, QScriptEngine *engine);
+ static QScriptValue wallpaperPlugins(QScriptContext *context, QScriptEngine *engine);
// helpers
static QScriptValue createContainment(const QString &type, const QString &defautPlugin,
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic