diff options
-rw-r--r-- | applications/kube-mail/package/contents/ui/main.qml | 29 | ||||
-rw-r--r-- | framework/CMakeLists.txt | 1 | ||||
-rw-r--r-- | framework/actions/CMakeLists.txt | 14 | ||||
-rw-r--r-- | framework/actions/action.cpp | 84 | ||||
-rw-r--r-- | framework/actions/action.h | 58 | ||||
-rw-r--r-- | framework/actions/actionbroker.cpp | 74 | ||||
-rw-r--r-- | framework/actions/actionbroker.h | 47 | ||||
-rw-r--r-- | framework/actions/actionhandler.cpp | 70 | ||||
-rw-r--r-- | framework/actions/actionhandler.h | 48 | ||||
-rw-r--r-- | framework/actions/actionplugin.cpp | 15 | ||||
-rw-r--r-- | framework/actions/actionplugin.h | 13 | ||||
-rw-r--r-- | framework/actions/context.cpp | 29 | ||||
-rw-r--r-- | framework/actions/context.h | 35 | ||||
-rw-r--r-- | framework/actions/qmldir | 3 |
14 files changed, 519 insertions, 1 deletions
diff --git a/applications/kube-mail/package/contents/ui/main.qml b/applications/kube-mail/package/contents/ui/main.qml index 200328f3..33744157 100644 --- a/applications/kube-mail/package/contents/ui/main.qml +++ b/applications/kube-mail/package/contents/ui/main.qml | |||
@@ -20,6 +20,8 @@ import QtQuick.Controls 1.3 | |||
20 | import QtQuick.Layouts 1.1 | 20 | import QtQuick.Layouts 1.1 |
21 | import org.kde.plasma.components 2.0 as PlasmaComponents | 21 | import org.kde.plasma.components 2.0 as PlasmaComponents |
22 | 22 | ||
23 | import org.kde.kube.actions 1.0 as Action | ||
24 | |||
23 | ApplicationWindow { | 25 | ApplicationWindow { |
24 | id: app | 26 | id: app |
25 | 27 | ||
@@ -30,6 +32,29 @@ ApplicationWindow { | |||
30 | 32 | ||
31 | visible: true | 33 | visible: true |
32 | 34 | ||
35 | Action.ActionHandler { | ||
36 | actionId: "org.kde.kube.actions.mark-as-read" | ||
37 | function isReady(context) { | ||
38 | return context.mail ? true : false; | ||
39 | } | ||
40 | |||
41 | function handler(context) { | ||
42 | console.warn("Got message:", context.mail) | ||
43 | } | ||
44 | } | ||
45 | |||
46 | Action.Context { | ||
47 | id: "maillistcontext" | ||
48 | property variant mail | ||
49 | mail: mailListView.currentMail | ||
50 | } | ||
51 | |||
52 | Action.Action { | ||
53 | id: "markAsReadAction" | ||
54 | actionId: "org.kde.kube.actions.mark-as-read" | ||
55 | context: maillistcontext | ||
56 | } | ||
57 | |||
33 | //UI | 58 | //UI |
34 | toolBar: ToolBar { | 59 | toolBar: ToolBar { |
35 | 60 | ||
@@ -51,9 +76,10 @@ ApplicationWindow { | |||
51 | 76 | ||
52 | iconName: "mail-mark-unread" | 77 | iconName: "mail-mark-unread" |
53 | text: "Mark Unread" | 78 | text: "Mark Unread" |
79 | enabled: markAsReadAction.ready | ||
54 | 80 | ||
55 | onClicked: { | 81 | onClicked: { |
56 | mailList.markMailUnread(true) | 82 | markAsReadAction.execute() |
57 | } | 83 | } |
58 | } | 84 | } |
59 | 85 | ||
@@ -109,6 +135,7 @@ ApplicationWindow { | |||
109 | 135 | ||
110 | Layout.fillWidth: true | 136 | Layout.fillWidth: true |
111 | } | 137 | } |
138 | |||
112 | } | 139 | } |
113 | 140 | ||
114 | //TODO find a better way to scale UI | 141 | //TODO find a better way to scale UI |
diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt index 1e0dd958..3a441f99 100644 --- a/framework/CMakeLists.txt +++ b/framework/CMakeLists.txt | |||
@@ -27,5 +27,6 @@ enable_testing() | |||
27 | set(AKONADI2_RESOURCE_PLUGINS_PATH ${QT_PLUGIN_INSTALL_DIR}/akonadi2/resources) | 27 | set(AKONADI2_RESOURCE_PLUGINS_PATH ${QT_PLUGIN_INSTALL_DIR}/akonadi2/resources) |
28 | 28 | ||
29 | add_subdirectory(mail) | 29 | add_subdirectory(mail) |
30 | add_subdirectory(actions) | ||
30 | 31 | ||
31 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) | 32 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) |
diff --git a/framework/actions/CMakeLists.txt b/framework/actions/CMakeLists.txt new file mode 100644 index 00000000..1151878c --- /dev/null +++ b/framework/actions/CMakeLists.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | set(SRCS | ||
2 | actionplugin.cpp | ||
3 | action.cpp | ||
4 | actionhandler.cpp | ||
5 | actionbroker.cpp | ||
6 | context.cpp | ||
7 | ) | ||
8 | |||
9 | add_library(actionplugin SHARED ${SRCS}) | ||
10 | |||
11 | qt5_use_modules(actionplugin Core Quick Qml) | ||
12 | |||
13 | install(TARGETS actionplugin DESTINATION ${QML_INSTALL_DIR}/org/kde/kube/actions) | ||
14 | install(FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/kube/actions) | ||
diff --git a/framework/actions/action.cpp b/framework/actions/action.cpp new file mode 100644 index 00000000..1f94ae81 --- /dev/null +++ b/framework/actions/action.cpp | |||
@@ -0,0 +1,84 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | #include "action.h" | ||
20 | |||
21 | #include <QDebug> | ||
22 | #include <QEvent> | ||
23 | #include <QDynamicPropertyChangeEvent> | ||
24 | #include <QMetaObject> | ||
25 | #include <QMetaProperty> | ||
26 | |||
27 | #include "actionbroker.h" | ||
28 | #include "context.h" | ||
29 | |||
30 | using namespace Kube; | ||
31 | |||
32 | Action::Action(QObject *parent) | ||
33 | : QObject(parent), | ||
34 | mContext(nullptr) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | void Action::setContext(Context *context) | ||
39 | { | ||
40 | //Get notified when any property changes | ||
41 | for (int i = 0; i < context->metaObject()->propertyCount(); i++) { | ||
42 | auto property = context->metaObject()->property(i) ; | ||
43 | qWarning() << "Property " << property.name() << property.hasNotifySignal() << property.notifySignal().name(); | ||
44 | if (QString(property.name()) != "objectName") { | ||
45 | //We do what SIGNAL does to connect to the changed signal automatically | ||
46 | QObject::connect(context, "2"+property.notifySignal().name()+"()", this, SLOT(contextChanged())); | ||
47 | } | ||
48 | } | ||
49 | mContext = context; | ||
50 | mContext->installEventFilter(this); | ||
51 | emit readyChanged(); | ||
52 | } | ||
53 | |||
54 | void Action::contextChanged() | ||
55 | { | ||
56 | emit readyChanged(); | ||
57 | } | ||
58 | |||
59 | Context *Action::context() const | ||
60 | { | ||
61 | return mContext; | ||
62 | } | ||
63 | |||
64 | void Action::setActionId(const QByteArray &actionId) | ||
65 | { | ||
66 | mActionId = actionId; | ||
67 | emit readyChanged(); | ||
68 | } | ||
69 | |||
70 | QByteArray Action::actionId() const | ||
71 | { | ||
72 | return mActionId; | ||
73 | } | ||
74 | |||
75 | bool Action::ready() const | ||
76 | { | ||
77 | return ActionBroker::instance().isActionReady(mActionId, mContext); | ||
78 | } | ||
79 | |||
80 | void Action::execute() | ||
81 | { | ||
82 | ActionBroker::instance().executeAction(mActionId, mContext); | ||
83 | } | ||
84 | |||
diff --git a/framework/actions/action.h b/framework/actions/action.h new file mode 100644 index 00000000..067c3c37 --- /dev/null +++ b/framework/actions/action.h | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | #pragma once | ||
20 | |||
21 | #include <QObject> | ||
22 | #include "context.h" | ||
23 | |||
24 | namespace Kube { | ||
25 | |||
26 | class Action : public QObject | ||
27 | { | ||
28 | Q_OBJECT | ||
29 | Q_PROPERTY(QByteArray actionId READ actionId WRITE setActionId) | ||
30 | //FIXME if I set the property to Context* qml fails to assign the registered type which is calle Kube::Context_QML_90 in QML... | ||
31 | Q_PROPERTY(Context* context READ context WRITE setContext) | ||
32 | Q_PROPERTY(bool ready READ ready NOTIFY readyChanged) | ||
33 | |||
34 | public: | ||
35 | Action(QObject *parent = 0); | ||
36 | |||
37 | void setContext(Context *); | ||
38 | Context *context() const; | ||
39 | |||
40 | void setActionId(const QByteArray &); | ||
41 | QByteArray actionId() const; | ||
42 | |||
43 | bool ready() const; | ||
44 | |||
45 | Q_INVOKABLE void execute(); | ||
46 | |||
47 | Q_SIGNALS: | ||
48 | void readyChanged(); | ||
49 | |||
50 | private Q_SLOTS: | ||
51 | void contextChanged(); | ||
52 | |||
53 | private: | ||
54 | Context *mContext; | ||
55 | QByteArray mActionId; | ||
56 | }; | ||
57 | |||
58 | } | ||
diff --git a/framework/actions/actionbroker.cpp b/framework/actions/actionbroker.cpp new file mode 100644 index 00000000..43a535a1 --- /dev/null +++ b/framework/actions/actionbroker.cpp | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #include "actionbroker.h" | ||
21 | |||
22 | #include "context.h" | ||
23 | #include "actionhandler.h" | ||
24 | |||
25 | #include <QDebug> | ||
26 | |||
27 | using namespace Kube; | ||
28 | |||
29 | ActionBroker::ActionBroker(QObject *parent) | ||
30 | : QObject(parent) | ||
31 | { | ||
32 | |||
33 | } | ||
34 | |||
35 | ActionBroker &ActionBroker::instance() | ||
36 | { | ||
37 | static ActionBroker instance; | ||
38 | return instance; | ||
39 | } | ||
40 | |||
41 | bool ActionBroker::isActionReady(const QByteArray &actionId, Context *context) | ||
42 | { | ||
43 | if (!context) { | ||
44 | return false; | ||
45 | } | ||
46 | |||
47 | //TODO This should return true if all handlers together promise to gather all necessary data, but not otherwise | ||
48 | for (const auto handler : mHandler.values(actionId)) { | ||
49 | if (handler && handler->isActionReady(context)) { | ||
50 | return true; | ||
51 | } | ||
52 | } | ||
53 | |||
54 | return false; | ||
55 | } | ||
56 | |||
57 | void ActionBroker::executeAction(const QByteArray &actionId, Context *context) | ||
58 | { | ||
59 | if (context) { | ||
60 | for (const auto handler : mHandler.values(actionId)) { | ||
61 | if (handler) { | ||
62 | handler->execute(context); | ||
63 | } | ||
64 | } | ||
65 | } else { | ||
66 | qWarning() << "Can't execute without context"; | ||
67 | } | ||
68 | } | ||
69 | |||
70 | void ActionBroker::registerHandler(const QByteArray &actionId, ActionHandler *handler) | ||
71 | { | ||
72 | //TODO get notified on destruction via QPointer | ||
73 | mHandler.insert(actionId, handler); | ||
74 | } | ||
diff --git a/framework/actions/actionbroker.h b/framework/actions/actionbroker.h new file mode 100644 index 00000000..08eac742 --- /dev/null +++ b/framework/actions/actionbroker.h | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | #pragma once | ||
20 | |||
21 | #include <QObject> | ||
22 | #include <QMultiMap> | ||
23 | |||
24 | namespace Kube { | ||
25 | class Context; | ||
26 | class ActionHandler; | ||
27 | |||
28 | class ActionBroker : public QObject | ||
29 | { | ||
30 | Q_OBJECT | ||
31 | public: | ||
32 | static ActionBroker &instance(); | ||
33 | |||
34 | bool isActionReady(const QByteArray &actionId, Context *context); | ||
35 | void executeAction(const QByteArray &actionId, Context *context); | ||
36 | |||
37 | void registerHandler(const QByteArray &actionId, ActionHandler *handler); | ||
38 | |||
39 | Q_SIGNALS: | ||
40 | void readyChanged(); | ||
41 | |||
42 | private: | ||
43 | ActionBroker(QObject *parent = 0); | ||
44 | QMultiMap<QByteArray, ActionHandler*> mHandler; | ||
45 | }; | ||
46 | |||
47 | } | ||
diff --git a/framework/actions/actionhandler.cpp b/framework/actions/actionhandler.cpp new file mode 100644 index 00000000..748c2303 --- /dev/null +++ b/framework/actions/actionhandler.cpp | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #include "actionhandler.h" | ||
21 | |||
22 | #include "context.h" | ||
23 | #include "actionbroker.h" | ||
24 | #include <QDebug> | ||
25 | |||
26 | using namespace Kube; | ||
27 | |||
28 | ActionHandler::ActionHandler(QObject *parent) | ||
29 | : QObject(parent) | ||
30 | { | ||
31 | |||
32 | } | ||
33 | |||
34 | bool ActionHandler::isActionReady(Context *context) | ||
35 | { | ||
36 | if (context) { | ||
37 | QVariant returnedValue; | ||
38 | QMetaObject::invokeMethod(this, "isReady", | ||
39 | Q_RETURN_ARG(QVariant, returnedValue), | ||
40 | Q_ARG(QVariant, QVariant::fromValue(context))); | ||
41 | return returnedValue.toBool(); | ||
42 | } else { | ||
43 | qWarning() << "The handler didn't get a context"; | ||
44 | } | ||
45 | return false; | ||
46 | } | ||
47 | |||
48 | void ActionHandler::execute(Context *context) | ||
49 | { | ||
50 | QVariant returnedValue; | ||
51 | qWarning() << "Executing the handler"; | ||
52 | if (context) { | ||
53 | QMetaObject::invokeMethod(this, "handler", | ||
54 | Q_RETURN_ARG(QVariant, returnedValue), | ||
55 | Q_ARG(QVariant, QVariant::fromValue(context))); | ||
56 | } else { | ||
57 | qWarning() << "The handler didn't get a context"; | ||
58 | } | ||
59 | } | ||
60 | |||
61 | void ActionHandler::setActionId(const QByteArray &actionId) | ||
62 | { | ||
63 | mActionId = actionId; | ||
64 | ActionBroker::instance().registerHandler(actionId, this); | ||
65 | } | ||
66 | |||
67 | QByteArray ActionHandler::actionId() const | ||
68 | { | ||
69 | return mActionId; | ||
70 | } | ||
diff --git a/framework/actions/actionhandler.h b/framework/actions/actionhandler.h new file mode 100644 index 00000000..cfcfddd7 --- /dev/null +++ b/framework/actions/actionhandler.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | #pragma once | ||
20 | |||
21 | #include <QObject> | ||
22 | #include <QMultiMap> | ||
23 | |||
24 | namespace Kube { | ||
25 | class Context; | ||
26 | |||
27 | class ActionHandler : public QObject | ||
28 | { | ||
29 | Q_OBJECT | ||
30 | Q_PROPERTY(QByteArray actionId READ actionId WRITE setActionId) | ||
31 | |||
32 | public: | ||
33 | ActionHandler(QObject *parent = 0); | ||
34 | |||
35 | virtual bool isActionReady(Context *context); | ||
36 | |||
37 | // void pre(Context *context); | ||
38 | virtual void execute(Context *context); | ||
39 | // void post(Context *context); | ||
40 | |||
41 | void setActionId(const QByteArray &); | ||
42 | QByteArray actionId() const; | ||
43 | |||
44 | private: | ||
45 | QByteArray mActionId; | ||
46 | }; | ||
47 | |||
48 | } | ||
diff --git a/framework/actions/actionplugin.cpp b/framework/actions/actionplugin.cpp new file mode 100644 index 00000000..710ba08a --- /dev/null +++ b/framework/actions/actionplugin.cpp | |||
@@ -0,0 +1,15 @@ | |||
1 | #include "actionplugin.h" | ||
2 | |||
3 | #include "action.h" | ||
4 | #include "context.h" | ||
5 | #include "actionhandler.h" | ||
6 | |||
7 | #include <QtQml> | ||
8 | |||
9 | void KubePlugin::registerTypes (const char *uri) | ||
10 | { | ||
11 | Q_ASSERT(uri == QLatin1String("org.kde.kube.actions")); | ||
12 | qmlRegisterType<Kube::Context>(uri, 1, 0, "Context"); | ||
13 | qmlRegisterType<Kube::Action>(uri, 1, 0, "Action"); | ||
14 | qmlRegisterType<Kube::ActionHandler>(uri, 1, 0, "ActionHandler"); | ||
15 | } | ||
diff --git a/framework/actions/actionplugin.h b/framework/actions/actionplugin.h new file mode 100644 index 00000000..e276da3b --- /dev/null +++ b/framework/actions/actionplugin.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #pragma once | ||
2 | |||
3 | #include <QQmlEngine> | ||
4 | #include <QQmlExtensionPlugin> | ||
5 | |||
6 | class KubePlugin : public QQmlExtensionPlugin | ||
7 | { | ||
8 | Q_OBJECT | ||
9 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") | ||
10 | |||
11 | public: | ||
12 | virtual void registerTypes(const char *uri); | ||
13 | }; | ||
diff --git a/framework/actions/context.cpp b/framework/actions/context.cpp new file mode 100644 index 00000000..a7f87d16 --- /dev/null +++ b/framework/actions/context.cpp | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | #include "context.h" | ||
20 | |||
21 | #include <QDebug> | ||
22 | |||
23 | using namespace Kube; | ||
24 | |||
25 | Context::Context(QObject *parent) | ||
26 | : QObject(parent) | ||
27 | { | ||
28 | |||
29 | } | ||
diff --git a/framework/actions/context.h b/framework/actions/context.h new file mode 100644 index 00000000..7289f850 --- /dev/null +++ b/framework/actions/context.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or modify it | ||
5 | under the terms of the GNU Library General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or (at your | ||
7 | option) any later version. | ||
8 | |||
9 | This library is distributed in the hope that it will be useful, but WITHOUT | ||
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | ||
12 | License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this library; see the file COPYING.LIB. If not, write to the | ||
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | ||
18 | */ | ||
19 | #pragma once | ||
20 | |||
21 | #include <QObject> | ||
22 | |||
23 | namespace Kube { | ||
24 | |||
25 | class Context : public QObject { | ||
26 | Q_OBJECT | ||
27 | public: | ||
28 | Context(QObject *parent = 0); | ||
29 | virtual ~Context(){}; | ||
30 | }; | ||
31 | |||
32 | } | ||
33 | |||
34 | Q_DECLARE_METATYPE(Kube::Context*); | ||
35 | |||
diff --git a/framework/actions/qmldir b/framework/actions/qmldir new file mode 100644 index 00000000..de2e4b46 --- /dev/null +++ b/framework/actions/qmldir | |||
@@ -0,0 +1,3 @@ | |||
1 | module org.kde.kube.actions | ||
2 | |||
3 | plugin actionplugin | ||