summaryrefslogtreecommitdiffstats
path: root/framework/src/actions/context.h
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/actions/context.h')
-rw-r--r--framework/src/actions/context.h67
1 files changed, 0 insertions, 67 deletions
diff --git a/framework/src/actions/context.h b/framework/src/actions/context.h
deleted file mode 100644
index 52fbdbc1..00000000
--- a/framework/src/actions/context.h
+++ /dev/null
@@ -1,67 +0,0 @@
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#define KUBE_CONTEXT_PROPERTY(TYPE, NAME, LOWERCASENAME) \
23 public: Q_PROPERTY(TYPE LOWERCASENAME MEMBER m##NAME NOTIFY LOWERCASENAME##Changed) \
24 Q_SIGNALS: void LOWERCASENAME##Changed(); \
25 private: TYPE m##NAME;
26
27#define KUBE_CONTEXTWRAPPER_PROPERTY(TYPE, NAME, LOWERCASENAME) \
28 public: \
29 struct NAME { \
30 static constexpr const char *name = #LOWERCASENAME; \
31 typedef TYPE Type; \
32 }; \
33 void set##NAME(const TYPE &value) { context.setProperty(NAME::name, QVariant::fromValue(value)); } \
34 void clear##NAME() { context.setProperty(NAME::name, QVariant{}); } \
35 TYPE get##NAME() const { return context.property(NAME::name).value<TYPE>(); } \
36
37
38namespace Kube {
39
40class Context : public QObject {
41 Q_OBJECT
42public:
43 Context(QObject *parent = 0);
44 Context(const Context &);
45
46 virtual ~Context(){};
47
48 Context &operator=(const Context &);
49
50 virtual void clear();
51
52 QSet<QByteArray> availableProperties() const;
53};
54
55class ContextWrapper {
56public:
57 ContextWrapper(Context &c) : context(c) {}
58 Context &context;
59};
60
61}
62
63QDebug operator<<(QDebug dbg, const Kube::Context &);
64QDebug operator<<(QDebug dbg, const Kube::ContextWrapper &);
65
66Q_DECLARE_METATYPE(Kube::Context*);
67