From 48da7de1b6bcd87c57b4c7f60133f3f13fc4bff2 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 29 Dec 2016 20:23:58 +0100 Subject: A typesafe action context --- framework/actions/context.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'framework/actions/context.h') 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 @@ #include +#define KUBE_CONTEXT_PROPERTY(TYPE, NAME, LOWERCASENAME) \ + public: Q_PROPERTY(TYPE LOWERCASENAME MEMBER m##NAME NOTIFY LOWERCASENAME##Changed) \ + struct NAME { \ + static constexpr const char *name = #LOWERCASENAME; \ + typedef TYPE Type; \ + }; \ + void set##NAME(const TYPE &value) { setProperty(NAME::name, QVariant::fromValue(value)); } \ + TYPE get##NAME() const { return m##NAME; } \ + Q_SIGNALS: void LOWERCASENAME##Changed(); \ + private: TYPE m##NAME; + + namespace Kube { class Context : public QObject { @@ -27,6 +39,7 @@ class Context : public QObject { public: Context(QObject *parent = 0); virtual ~Context(){}; + virtual void clear(); }; } -- cgit v1.2.3