22#include <QDBusContext> 
   23#include <QDBusMessage> 
   40class QtScriptWorkspaceWrapper;
 
   46    AbstractScript(
int id, QString scriptName, QString pluginName, QObject *parent = 
nullptr);
 
   65    KConfigGroup config() 
const;
 
   69    virtual void run() = 0;
 
   77        if (m_running == running) {
 
   81        Q_EMIT runningChanged(m_running);
 
 
 
  100    Q_INVOKABLE 
ScriptTimer(QObject *parent = 
nullptr);
 
 
  107    Script(
int id, QString scriptName, QString 
pluginName, QObject *parent = 
nullptr);
 
  110    Q_INVOKABLE QVariant 
readConfig(
const QString &key, 
const QVariant &defaultValue = QVariant());
 
  112    Q_INVOKABLE 
void callDBus(
const QString &service, 
const QString &path,
 
  113                              const QString &interface, 
const QString &method,
 
  114                              const QJSValue &arg1 = QJSValue(),
 
  115                              const QJSValue &arg2 = QJSValue(),
 
  116                              const QJSValue &arg3 = QJSValue(),
 
  117                              const QJSValue &arg4 = QJSValue(),
 
  118                              const QJSValue &arg5 = QJSValue(),
 
  119                              const QJSValue &arg6 = QJSValue(),
 
  120                              const QJSValue &arg7 = QJSValue(),
 
  121                              const QJSValue &arg8 = QJSValue(),
 
  122                              const QJSValue &arg9 = QJSValue());
 
  124    Q_INVOKABLE 
bool registerShortcut(
const QString &objectName, 
const QString &text,
 
  125                                      const QString &keySequence, 
const QJSValue &callback);
 
  195    void slotScriptLoadedFromFile();
 
  207    QByteArray loadScriptFromFile(
const QString &
fileName);
 
  216    QAction *scriptValueToAction(
const QJSValue &value, QMenu *parent);
 
  232    QAction *createAction(
const QString &title, 
const QJSValue &item, QMenu *parent);
 
  242    QAction *createMenu(
const QString &title, 
const QJSValue &items, QMenu *parent);
 
  245    QDBusMessage m_invocationContext;
 
  247    QHash<int, QJSValueList> m_screenEdgeCallbacks;
 
  248    QHash<int, QAction *> m_touchScreenEdgeCallbacks;
 
  249    QJSValueList m_userActionsMenuCallbacks;
 
 
  260    Q_SCRIPTABLE 
void run() 
override;
 
  263    void createComponent();
 
  266    QQmlContext *m_context;
 
  267    QQmlComponent *m_component;
 
 
  300    QVariant 
readConfig(
const QString &key, QVariant defaultValue = QVariant());
 
 
  312    Q_CLASSINFO(
"D-Bus Interface", 
"org.kde.kwin.Scripting")
 
  315    QStringList scriptList;
 
  316    QList<KWin::AbstractScript *> scripts;
 
  320    std::unique_ptr<QRecursiveMutex> m_scriptsLock;
 
  327    Q_SCRIPTABLE Q_INVOKABLE 
int loadScript(
const QString &filePath, 
const QString &pluginName = QString());
 
  328    Q_SCRIPTABLE Q_INVOKABLE 
int loadDeclarativeScript(
const QString &filePath, 
const QString &pluginName = QString());
 
  329    Q_SCRIPTABLE Q_INVOKABLE 
bool isScriptLoaded(
const QString &pluginName) 
const;
 
  330    Q_SCRIPTABLE Q_INVOKABLE 
bool unloadScript(
const QString &pluginName);
 
  339    QList<QAction *> actionsForUserActionMenu(
Window *c, QMenu *parent);
 
  341    QQmlEngine *qmlEngine() 
const;
 
  342    QQmlEngine *qmlEngine();
 
  343    QQmlContext *declarativeScriptSharedContext() 
const;
 
  344    QQmlContext *declarativeScriptSharedContext();
 
  350    static Scripting *create(QObject *parent);
 
  353    void scriptDestroyed(QObject *
object);
 
  354    Q_SCRIPTABLE 
void start();
 
  357    void slotScriptsQueried();
 
  363    QQmlEngine *m_qmlEngine;
 
  364    QQmlContext *m_declarativeScriptSharedContext;
 
 
  380    return m_declarativeScriptSharedContext;
 
 
  385    return m_declarativeScriptSharedContext;
 
 
  390    return m_workspaceWrapper;
 
 
void setRunning(bool running)
void runningChanged(bool)
const QString & pluginName()
Q_SCRIPTABLE void run() override
~DeclarativeScript() override
DeclarativeScript(int id, QString scriptName, QString pluginName, QObject *parent=nullptr)
~JSEngineGlobalMethodsWrapper() override
JSEngineGlobalMethodsWrapper(DeclarativeScript *parent)
@ PlacementArea
geometry where a window will be initially placed after being mapped
@ FullArea
one whole screen, ignore struts
@ MaximizeArea
like MaximizeArea, but ignore struts - used e.g. for topmenu
@ MaximizeFullArea
area for fullscreen windows
@ WorkArea
whole area (all screens together), ignore struts
@ MovementArea
geometry to which a window will be maximized
@ FullScreenArea
whole workarea (all screens together)
QVariant readConfig(const QString &key, QVariant defaultValue=QVariant())
Q_INVOKABLE QVariant readConfig(const QString &key, const QVariant &defaultValue=QVariant())
Q_INVOKABLE bool unregisterTouchScreenEdge(int edge)
Script(int id, QString scriptName, QString pluginName, QObject *parent=nullptr)
Q_INVOKABLE void callDBus(const QString &service, const QString &path, const QString &interface, const QString &method, const QJSValue &arg1=QJSValue(), const QJSValue &arg2=QJSValue(), const QJSValue &arg3=QJSValue(), const QJSValue &arg4=QJSValue(), const QJSValue &arg5=QJSValue(), const QJSValue &arg6=QJSValue(), const QJSValue &arg7=QJSValue(), const QJSValue &arg8=QJSValue(), const QJSValue &arg9=QJSValue())
Q_INVOKABLE bool registerTouchScreenEdge(int edge, const QJSValue &callback)
Q_INVOKABLE bool registerShortcut(const QString &objectName, const QString &text, const QString &keySequence, const QJSValue &callback)
QList< QAction * > actionsForUserActionMenu(Window *client, QMenu *parent)
Creates actions for the UserActionsMenu by invoking the registered callbacks.
Q_INVOKABLE void registerUserActionsMenu(const QJSValue &callback)
Registers the given callback to be invoked whenever the UserActionsMenu is about to be showed....
Q_INVOKABLE bool unregisterScreenEdge(int edge)
Q_INVOKABLE bool registerScreenEdge(int edge, const QJSValue &callback)
Q_INVOKABLE ScriptTimer(QObject *parent=nullptr)
QQmlContext * declarativeScriptSharedContext() const
QtScriptWorkspaceWrapper * workspaceWrapper() const
static Scripting * self()
QQmlEngine * qmlEngine() const
QList< QPair< bool, QPair< QString, QString > > > LoadScriptList
true == javascript, false == qml