Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_acyclic_signal_connector.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_ACYCLIC_SIGNAL_CONNECTOR_H
8#define __KIS_ACYCLIC_SIGNAL_CONNECTOR_H
9
10#include <QObject>
11#include "kritaglobal_export.h"
12#include <mutex>
13
15class KoColor;
16
17#include <QVector>
18#include <QPointer>
19
52class KRITAGLOBAL_EXPORT KisAcyclicSignalConnector : public QObject
53{
54 Q_OBJECT
55public:
56 typedef std::unique_lock<KisAcyclicSignalConnector> Blocker;
57
58public:
59
60 KisAcyclicSignalConnector(QObject *parent = 0);
62
63 void connectForwardDouble(QObject *sender, const char *signal,
64 QObject *receiver, const char *method);
65
66 void connectBackwardDouble(QObject *sender, const char *signal,
67 QObject *receiver, const char *method);
68
69 void connectForwardInt(QObject *sender, const char *signal,
70 QObject *receiver, const char *method);
71
72 void connectBackwardInt(QObject *sender, const char *signal,
73 QObject *receiver, const char *method);
74
75 void connectForwardBool(QObject *sender, const char *signal,
76 QObject *receiver, const char *method);
77
78 void connectBackwardBool(QObject *sender, const char *signal,
79 QObject *receiver, const char *method);
80
81 void connectForwardVoid(QObject *sender, const char *signal,
82 QObject *receiver, const char *method);
83
84 void connectBackwardVoid(QObject *sender, const char *signal,
85 QObject *receiver, const char *method);
86
87 void connectForwardVariant(QObject *sender, const char *signal,
88 QObject *receiver, const char *method);
89
90 void connectBackwardVariant(QObject *sender, const char *signal,
91 QObject *receiver, const char *method);
92
93 void connectForwardResourcePair(QObject *sender, const char *signal,
94 QObject *receiver, const char *method);
95
96 void connectBackwardResourcePair(QObject *sender, const char *signal,
97 QObject *receiver, const char *method);
98
99 void connectForwardKoColor(QObject *sender, const char *signal,
100 QObject *receiver, const char *method);
101
102 void connectBackwardKoColor(QObject *sender, const char *signal,
103 QObject *receiver, const char *method);
104
108 void lock();
109
113 void unlock();
114
119 bool isLocked() const;
120
132 KisAcyclicSignalConnector *createCoordinatedConnector();
133
134private:
135
139 void coordinatedLock();
140
144 void coordinatedUnlock();
145
146private Q_SLOTS:
147 void forwardSlotDouble(double value);
148 void backwardSlotDouble(double value);
149
150 void forwardSlotInt(int value);
151 void backwardSlotInt(int value);
152
153 void forwardSlotBool(bool value);
154 void backwardSlotBool(bool value);
155
156 void forwardSlotVoid();
157 void backwardSlotVoid();
158
159 void forwardSlotVariant(const QVariant &value);
160 void backwardSlotVariant(const QVariant &value);
161
162 void forwardSlotResourcePair(int key, const QVariant &resource);
163 void backwardSlotResourcePair(int key, const QVariant &resource);
164
165 void forwardSlotKoColor(const KoColor &value);
166 void backwardSlotKoColor(const KoColor &value);
167
168Q_SIGNALS:
171
174
177
180
181 void forwardSignalVariant(const QVariant &value);
182 void backwardSignalVariant(const QVariant &value);
183
184 void forwardSignalResourcePair(int key, const QVariant &value);
185 void backwardSignalResourcePair(int key, const QVariant &value);
186
189
190private:
194};
195
196#endif /* __KIS_ACYCLIC_SIGNAL_CONNECTOR_H */
float value(const T *src, size_t ch)
QPointer< KisAcyclicSignalConnector > m_parentConnector
void backwardSignalDouble(double value)
void forwardSignalKoColor(const KoColor &value)
void forwardSignalBool(bool value)
void backwardSignalInt(int value)
void forwardSignalVariant(const QVariant &value)
void backwardSignalVariant(const QVariant &value)
void forwardSignalDouble(double value)
QVector< QPointer< KisAcyclicSignalConnector > > m_coordinatedConnectors
void forwardSignalResourcePair(int key, const QVariant &value)
void backwardSignalBool(bool value)
std::unique_lock< KisAcyclicSignalConnector > Blocker
void forwardSignalInt(int value)
void backwardSignalResourcePair(int key, const QVariant &value)
void backwardSignalKoColor(const KoColor &value)