From 70cef222119571cdaf0eb89bc685cb1b73d5f11a Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 16 Sep 2013 17:08:48 +0200 Subject: [PATCH] expose containmentInterface::actions the toolbox will use it --- .../qml/plasmoid/containmentinterface.cpp | 18 ++++++++++++++++++ .../qml/plasmoid/containmentinterface.h | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/src/scriptengines/qml/plasmoid/containmentinterface.cpp b/src/scriptengines/qml/plasmoid/containmentinterface.cpp index f31ad4fa4..e40e63fc3 100644 --- a/src/scriptengines/qml/plasmoid/containmentinterface.cpp +++ b/src/scriptengines/qml/plasmoid/containmentinterface.cpp @@ -555,6 +555,24 @@ QString ContainmentInterface::activity() const return containment()->activity(); } +QList ContainmentInterface::actions() const +{ + //FIXME: giving directly a QList crashes + + //use a multimap to sort by action type + QMultiMap actions; + foreach (QAction *a, containment()->actions()->actions()) { + if (a->isEnabled()) { + actions.insert(a->data().toInt(), a); + } + } + foreach (QAction *a, containment()->corona()->actions()->actions()) { + if (a->isEnabled()) { + actions.insert(a->data().toInt(), a); + } + } + return actions.values(); +} diff --git a/src/scriptengines/qml/plasmoid/containmentinterface.h b/src/scriptengines/qml/plasmoid/containmentinterface.h index fd8953321..2889d65fc 100644 --- a/src/scriptengines/qml/plasmoid/containmentinterface.h +++ b/src/scriptengines/qml/plasmoid/containmentinterface.h @@ -58,6 +58,11 @@ class ContainmentInterface : public AppletInterface */ Q_PROPERTY(QString activity READ activity NOTIFY activityChanged) + /** + * Actions associated to this containment or corona + */ + Q_PROPERTY(QList actions READ actions NOTIFY actionsChanged) + public: ContainmentInterface(DeclarativeAppletScript *parent); //Not for QML @@ -75,6 +80,8 @@ public: QString activity() const; + QList actions() const; + /** * FIXME: either a property or not accessible at all. Lock or unlock widgets */ @@ -127,6 +134,7 @@ Q_SIGNALS: void drawWallpaperChanged(); void containmentTypeChanged(); ///void immutableChanged(); + void actionsChanged(); protected Q_SLOTS: void appletAddedForward(Plasma::Applet *applet);