diff --git a/shell/scripting/scriptengine.h b/shell/scripting/scriptengine.h --- a/shell/scripting/scriptengine.h +++ b/shell/scripting/scriptengine.h @@ -74,6 +74,7 @@ static QStringList availableActivities(QScriptContext *context, QScriptEngine *engine); static QScriptValue createActivity(QScriptContext *context, QScriptEngine *engine); + static QScriptValue removeActivity(QScriptContext *context, QScriptEngine *engine); static QScriptValue setCurrentActivity(QScriptContext *context, QScriptEngine *engine); static QScriptValue currentActivity(QScriptContext *controller, QScriptEngine *engine); static QScriptValue activities(QScriptContext *context, QScriptEngine *engine); diff --git a/shell/scripting/scriptengine.cpp b/shell/scripting/scriptengine.cpp --- a/shell/scripting/scriptengine.cpp +++ b/shell/scripting/scriptengine.cpp @@ -227,6 +227,26 @@ return QScriptValue(id); } +QScriptValue ScriptEngine::removeActivity(QScriptContext *context, QScriptEngine *engine) +{ + if (context->argumentCount() < 0) { + return context->throwError(i18n("createActivity required the activity name")); + } + + const QString id = context->argument(0).toString(); + + ScriptEngine *env = envFor(engine); + + KActivities::Controller controller; + + // This is not the nicest way to do this, but createActivity + // is a synchronous API :/ + QFuture futureDelete = controller.removeActivity(id); + awaitFuture(futureDelete); + + return QScriptValue(); +} + QScriptValue ScriptEngine::setCurrentActivity(QScriptContext *context, QScriptEngine *engine) { Q_UNUSED(engine) @@ -818,6 +838,7 @@ m_scriptSelf.setProperty(QStringLiteral("QRectF"), constructQRectFClass(this)); m_scriptSelf.setProperty(QStringLiteral("createActivity"), newFunction(ScriptEngine::createActivity)); + m_scriptSelf.setProperty(QStringLiteral("removeActivity"), newFunction(ScriptEngine::removeActivity)); m_scriptSelf.setProperty(QStringLiteral("setCurrentActivity"), newFunction(ScriptEngine::setCurrentActivity)); m_scriptSelf.setProperty(QStringLiteral("currentActivity"), newFunction(ScriptEngine::currentActivity)); m_scriptSelf.setProperty(QStringLiteral("activities"), newFunction(ScriptEngine::activities));