summaryrefslogtreecommitdiffstats
path: root/framework/actions/context.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-12-29 20:23:58 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-12-29 20:37:22 +0100
commit48da7de1b6bcd87c57b4c7f60133f3f13fc4bff2 (patch)
treeafad136d1179480301646355fab0d95c1302d7e7 /framework/actions/context.h
parent08dbe5251cb818b4f548029a6e96b4500fe7a35f (diff)
downloadkube-48da7de1b6bcd87c57b4c7f60133f3f13fc4bff2.tar.gz
kube-48da7de1b6bcd87c57b4c7f60133f3f13fc4bff2.zip
A typesafe action context
Diffstat (limited to 'framework/actions/context.h')
-rw-r--r--framework/actions/context.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/framework/actions/context.h b/framework/actions/context.h
index 562e110e..42ae3a93 100644
--- a/framework/actions/context.h
+++ b/framework/actions/context.h
@@ -20,6 +20,18 @@
20 20
21#include <QObject> 21#include <QObject>
22 22
23#define KUBE_CONTEXT_PROPERTY(TYPE, NAME, LOWERCASENAME) \
24 public: Q_PROPERTY(TYPE LOWERCASENAME MEMBER m##NAME NOTIFY LOWERCASENAME##Changed) \
25 struct NAME { \
26 static constexpr const char *name = #LOWERCASENAME; \
27 typedef TYPE Type; \
28 }; \
29 void set##NAME(const TYPE &value) { setProperty(NAME::name, QVariant::fromValue(value)); } \
30 TYPE get##NAME() const { return m##NAME; } \
31 Q_SIGNALS: void LOWERCASENAME##Changed(); \
32 private: TYPE m##NAME;
33
34
23namespace Kube { 35namespace Kube {
24 36
25class Context : public QObject { 37class Context : public QObject {
@@ -27,6 +39,7 @@ class Context : public QObject {
27public: 39public:
28 Context(QObject *parent = 0); 40 Context(QObject *parent = 0);
29 virtual ~Context(){}; 41 virtual ~Context(){};
42 virtual void clear();
30}; 43};
31 44
32} 45}