From 79f055689d7bd42ccc862068ac05b5e295d33133 Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Tue, 27 Apr 2010 20:51:38 +0000 Subject: [PATCH] availableActivities(), availablePanels() svn path=/trunk/KDE/kdebase/workspace/; revision=1119863 --- scriptengine.cpp | 26 ++++++++++++++++++++++++++ scriptengine.h | 3 +++ 2 files changed, 29 insertions(+) diff --git a/scriptengine.cpp b/scriptengine.cpp index 6d33c67cb..58f8b30e9 100644 --- a/scriptengine.cpp +++ b/scriptengine.cpp @@ -203,6 +203,30 @@ QScriptValue ScriptEngine::availableWidgets(QScriptContext *context, QScriptEngi return qScriptValueFromValue(engine, widgets); } +QScriptValue ScriptEngine::availableActivities(QScriptContext *context, QScriptEngine *engine) +{ + Q_UNUSED(context) + return qScriptValueFromValue(engine, availableContainments("desktop")); +} + +QScriptValue ScriptEngine::availablePanels(QScriptContext *context, QScriptEngine *engine) +{ + Q_UNUSED(context) + return qScriptValueFromValue(engine, availableContainments("panel")); +} + +QStringList ScriptEngine::availableContainments(const QString &type) +{ + QStringList containments; + KPluginInfo::List info = Plasma::Containment::listContainmentsOfType(type); + + foreach (const KPluginInfo &info, info) { + containments.append(info.pluginName()); + } + + return containments; +} + QScriptValue ScriptEngine::activities(QScriptContext *context, QScriptEngine *engine) { Q_UNUSED(context) @@ -329,6 +353,8 @@ void ScriptEngine::setupEngine() m_scriptSelf.setProperty("Activity", newFunction(ScriptEngine::newActivity)); m_scriptSelf.setProperty("Panel", newFunction(ScriptEngine::newPanel)); m_scriptSelf.setProperty("availableWidgets", newFunction(ScriptEngine::availableWidgets)); + m_scriptSelf.setProperty("availableActivities", newFunction(ScriptEngine::availableActivities)); + m_scriptSelf.setProperty("availablePanels", newFunction(ScriptEngine::availablePanels)); m_scriptSelf.setProperty("activities", newFunction(ScriptEngine::activities)); m_scriptSelf.setProperty("activityById", newFunction(ScriptEngine::activityById)); m_scriptSelf.setProperty("activityForScreen", newFunction(ScriptEngine::activityForScreen)); diff --git a/scriptengine.h b/scriptengine.h index 5c57e03da..d38d1c015 100644 --- a/scriptengine.h +++ b/scriptengine.h @@ -63,6 +63,9 @@ private: // containment accessors static QScriptValue availableWidgets(QScriptContext *context, QScriptEngine *engine); + static QScriptValue availableActivities(QScriptContext *context, QScriptEngine *engine); + static QScriptValue availablePanels(QScriptContext *context, QScriptEngine *engine); + static QStringList availableContainments(const QString &type); static QScriptValue newActivity(QScriptContext *context, QScriptEngine *engine); static QScriptValue newPanel(QScriptContext *context, QScriptEngine *engine); static QScriptValue activities(QScriptContext *context, QScriptEngine *engine);