diff --git a/shell/scripting/scriptengine.cpp b/shell/scripting/scriptengine.cpp index b066c6a70..628e715d6 100644 --- a/shell/scripting/scriptengine.cpp +++ b/shell/scripting/scriptengine.cpp @@ -189,6 +189,22 @@ QScriptValue ScriptEngine::desktopForScreen(QScriptContext *context, QScriptEngi return env->wrap(env->m_corona->containmentForScreen(screen)); } +QScriptValue ScriptEngine::removeActivity(QScriptContext *context, QScriptEngine *engine) +{ + if (context->argumentCount() < 0) { + return context->throwError(i18n("removeActivity required the activity id")); + } + + const auto id = context->argument(0).toString(); + + KActivities::Controller controller; + const auto result = controller.removeActivity(id); + + awaitFuture(result); + + return QScriptValue(); +} + QScriptValue ScriptEngine::createActivity(QScriptContext *context, QScriptEngine *engine) { if (context->argumentCount() < 0) { @@ -818,6 +834,7 @@ void ScriptEngine::setupEngine() 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)); diff --git a/shell/scripting/scriptengine.h b/shell/scripting/scriptengine.h index 6eae8a1b2..944744246 100644 --- a/shell/scripting/scriptengine.h +++ b/shell/scripting/scriptengine.h @@ -74,6 +74,7 @@ private: 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);