1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#ifndef DRUGGELJUG_H
#define DRUGGELJUG_H
#include <QtCore/qobject.h>
#include <QtCore/qdatetime.h>
#include <qqmlregistration.h>
#define STORE_FUNCTION(type, name, member, signal) \
Q_INVOKABLE void name(type value) { \
if (value != member) { \
member = value; \
emit signal(value); \
} \
}
class Druggeljug : public QObject
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON
Q_PROPERTY(int myInt MEMBER m_myInt NOTIFY myIntChanged FINAL)
Q_PROPERTY(uint myUint MEMBER m_myUint NOTIFY myUintChanged FINAL)
Q_PROPERTY(qint8 myInt8 MEMBER m_myInt8 NOTIFY myInt8Changed FINAL)
Q_PROPERTY(quint8 myUint8 MEMBER m_myUint8 NOTIFY myUint8Changed FINAL)
Q_PROPERTY(qint16 myInt16 MEMBER m_myInt16 NOTIFY myInt16Changed FINAL)
Q_PROPERTY(quint16 myUint16 MEMBER m_myUint16 NOTIFY myUint16Changed FINAL)
Q_PROPERTY(qint32 myInt32 MEMBER m_myInt32 NOTIFY myInt32Changed FINAL)
Q_PROPERTY(quint32 myUint32 MEMBER m_myUint32 NOTIFY myUint32Changed FINAL)
Q_PROPERTY(qint64 myInt64 MEMBER m_myInt64 NOTIFY myInt64Changed FINAL)
Q_PROPERTY(quint64 myUint64 MEMBER m_myUint64 NOTIFY myUint64Changed FINAL)
Q_PROPERTY(QTime myTime MEMBER m_myTime NOTIFY myTimeChanged)
Q_PROPERTY(QDate myDate MEMBER m_myDate NOTIFY myDateChanged)
public:
Druggeljug(QObject* parent = nullptr) : QObject(parent) {}
STORE_FUNCTION(int, storeMyInt, m_myInt, myIntChanged)
STORE_FUNCTION(uint, storeMyUint, m_myUint, myUintChanged)
STORE_FUNCTION(qint8, storeMyInt8, m_myInt8, myInt8Changed)
STORE_FUNCTION(quint8, storeMyUint8, m_myUint8, myUint8Changed)
STORE_FUNCTION(qint16, storeMyInt16, m_myInt16, myInt16Changed)
STORE_FUNCTION(quint16, storeMyUint16, m_myUint16, myUint16Changed)
STORE_FUNCTION(qint32, storeMyInt32, m_myInt32, myInt32Changed)
STORE_FUNCTION(quint32, storeMyUint32, m_myUint32, myUint32Changed)
STORE_FUNCTION(qint64, storeMyInt64, m_myInt64, myInt64Changed)
STORE_FUNCTION(quint64, storeMyUint64, m_myUint64, myUint64Changed)
QTime myTime() const { return m_myTime; }
QDate myDate() const { return m_myDate; }
private:
int m_myInt = 0;
uint m_myUint = 0;
qint8 m_myInt8 = 0;
quint8 m_myUint8 = 0;
qint16 m_myInt16 = 0;
quint16 m_myUint16 = 0;
qint32 m_myInt32 = 0;
quint32 m_myUint32 = 0;
qint64 m_myInt64 = 0;
quint64 m_myUint64 = 0;
QTime m_myTime = QTime(11, 55, 0);
QDate m_myDate = QDate(2017, 9, 3);
signals:
void myIntChanged(int);
void myUintChanged(uint);
void myInt8Changed(qint8);
void myUint8Changed(quint8);
void myInt16Changed(qint16);
void myUint16Changed(quint16);
void myInt32Changed(qint32);
void myUint32Changed(quint32);
void myInt64Changed(qint64);
void myUint64Changed(quint64);
void myTimeChanged();
void myDateChanged();
};
#endif
|