Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_acyclic_signal_connector.cpp
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
8
9#include "kis_debug.h"
10
11
13 : QObject(parent),
14 m_signalsBlocked(0)
15{
16}
17
21
22void KisAcyclicSignalConnector::connectForwardDouble(QObject *sender, const char *signal,
23 QObject *receiver, const char *method)
24{
25
26 connect(sender, signal, this, SLOT(forwardSlotDouble(double)), Qt::UniqueConnection);
27 connect(this, SIGNAL(forwardSignalDouble(double)), receiver, method, Qt::UniqueConnection);
28}
29
30void KisAcyclicSignalConnector::connectBackwardDouble(QObject *sender, const char *signal,
31 QObject *receiver, const char *method)
32{
33
34 connect(sender, signal, this, SLOT(backwardSlotDouble(double)), Qt::UniqueConnection);
35 connect(this, SIGNAL(backwardSignalDouble(double)), receiver, method, Qt::UniqueConnection);
36}
37
38void KisAcyclicSignalConnector::connectForwardInt(QObject *sender, const char *signal,
39 QObject *receiver, const char *method)
40{
41
42 connect(sender, signal, this, SLOT(forwardSlotInt(int)), Qt::UniqueConnection);
43 connect(this, SIGNAL(forwardSignalInt(int)), receiver, method, Qt::UniqueConnection);
44}
45
46void KisAcyclicSignalConnector::connectBackwardInt(QObject *sender, const char *signal,
47 QObject *receiver, const char *method)
48{
49
50 connect(sender, signal, this, SLOT(backwardSlotInt(int)), Qt::UniqueConnection);
51 connect(this, SIGNAL(backwardSignalInt(int)), receiver, method, Qt::UniqueConnection);
52}
53
54void KisAcyclicSignalConnector::connectForwardBool(QObject *sender, const char *signal,
55 QObject *receiver, const char *method)
56{
57
58 connect(sender, signal, this, SLOT(forwardSlotBool(bool)), Qt::UniqueConnection);
59 connect(this, SIGNAL(forwardSignalBool(bool)), receiver, method, Qt::UniqueConnection);
60}
61
62void KisAcyclicSignalConnector::connectBackwardBool(QObject *sender, const char *signal,
63 QObject *receiver, const char *method)
64{
65
66 connect(sender, signal, this, SLOT(backwardSlotBool(bool)), Qt::UniqueConnection);
67 connect(this, SIGNAL(backwardSignalBool(bool)), receiver, method, Qt::UniqueConnection);
68}
69
70void KisAcyclicSignalConnector::connectForwardVoid(QObject *sender, const char *signal,
71 QObject *receiver, const char *method)
72{
73
74 connect(sender, signal, this, SLOT(forwardSlotVoid()), Qt::UniqueConnection);
75 connect(this, SIGNAL(forwardSignalVoid()), receiver, method, Qt::UniqueConnection);
76}
77
78void KisAcyclicSignalConnector::connectBackwardVoid(QObject *sender, const char *signal,
79 QObject *receiver, const char *method)
80{
81
82 connect(sender, signal, this, SLOT(backwardSlotVoid()), Qt::UniqueConnection);
83 connect(this, SIGNAL(backwardSignalVoid()), receiver, method, Qt::UniqueConnection);
84}
85
86void KisAcyclicSignalConnector::connectForwardVariant(QObject *sender, const char *signal,
87 QObject *receiver, const char *method)
88{
89
90 connect(sender, signal, this, SLOT(forwardSlotVariant(QVariant)), Qt::UniqueConnection);
91 connect(this, SIGNAL(forwardSignalVariant(QVariant)), receiver, method, Qt::UniqueConnection);
92}
93
94void KisAcyclicSignalConnector::connectBackwardVariant(QObject *sender, const char *signal,
95 QObject *receiver, const char *method)
96{
97 connect(sender, signal, this, SLOT(backwardSlotVariant(QVariant)), Qt::UniqueConnection);
98 connect(this, SIGNAL(backwardSignalVariant(QVariant)), receiver, method, Qt::UniqueConnection);
99}
100
101void KisAcyclicSignalConnector::connectForwardResourcePair(QObject *sender, const char *signal, QObject *receiver, const char *method)
102{
103 connect(sender, signal, this, SLOT(forwardSlotResourcePair(int,QVariant)), Qt::UniqueConnection);
104 connect(this, SIGNAL(forwardSignalResourcePair(int,QVariant)), receiver, method, Qt::UniqueConnection);
105}
106
107void KisAcyclicSignalConnector::connectBackwardResourcePair(QObject *sender, const char *signal, QObject *receiver, const char *method)
108{
109 connect(sender, signal, this, SLOT(backwardSlotResourcePair(int,QVariant)), Qt::UniqueConnection);
110 connect(this, SIGNAL(backwardSignalResourcePair(int,QVariant)), receiver, method, Qt::UniqueConnection);
111}
112
113void KisAcyclicSignalConnector::connectForwardKoColor(QObject *sender, const char *signal, QObject *receiver, const char *method)
114{
115 connect(sender, signal, this, SLOT(forwardSlotKoColor(KoColor)), Qt::UniqueConnection);
116 connect(this, SIGNAL(forwardSignalKoColor(KoColor)), receiver, method, Qt::UniqueConnection);
117}
118
119void KisAcyclicSignalConnector::connectBackwardKoColor(QObject *sender, const char *signal, QObject *receiver, const char *method)
120{
121 connect(sender, signal, this, SLOT(backwardSlotKoColor(KoColor)), Qt::UniqueConnection);
122 connect(this, SIGNAL(backwardSignalKoColor(KoColor)), receiver, method, Qt::UniqueConnection);
123}
124
126{
127 if (m_parentConnector) {
128 m_parentConnector->lock();
129 } else {
131
133 if (!conn) continue;
134 conn->coordinatedLock();
135 }
136 }
137}
138
140{
141 if (m_parentConnector) {
142 m_parentConnector->unlock();
143 } else {
145 if (!conn) continue;
146 conn->coordinatedUnlock();
147 }
148
150 }
151}
152
154{
155 return m_signalsBlocked;
156}
157
162
167
175
177{
178 if (m_signalsBlocked) return;
179
180 lock();
182 unlock();
183}
184
186{
187 if (m_signalsBlocked) return;
188
189 lock();
191 unlock();
192}
193
195{
196 if (m_signalsBlocked) return;
197
198 lock();
199 Q_EMIT forwardSignalInt(value);
200 unlock();
201}
202
204{
205 if (m_signalsBlocked) return;
206
207 lock();
208 Q_EMIT backwardSignalInt(value);
209 unlock();
210}
211
213{
214 if (m_signalsBlocked) return;
215
216 lock();
217 Q_EMIT forwardSignalBool(value);
218 unlock();
219}
220
222{
223 if (m_signalsBlocked) return;
224
225 lock();
227 unlock();
228}
229
231{
232 if (m_signalsBlocked) return;
233
234 lock();
235 Q_EMIT forwardSignalVoid();
236 unlock();
237}
238
240{
241 if (m_signalsBlocked) return;
242
243 lock();
244 Q_EMIT backwardSignalVoid();
245 unlock();
246}
247
249{
250 if (m_signalsBlocked) return;
251
252 lock();
254 unlock();
255}
256
258{
259 if (m_signalsBlocked) return;
260
261 lock();
263 unlock();
264}
265
266void KisAcyclicSignalConnector::forwardSlotResourcePair(int key, const QVariant &resource)
267{
268 if (m_signalsBlocked) return;
269
270 lock();
271 Q_EMIT forwardSignalResourcePair(key, resource);
272 unlock();
273}
274
275void KisAcyclicSignalConnector::backwardSlotResourcePair(int key, const QVariant &resource)
276{
277 if (m_signalsBlocked) return;
278
279 lock();
280 Q_EMIT backwardSignalResourcePair(key, resource);
281 unlock();
282}
283
285{
286 if (m_signalsBlocked) return;
287
288 lock();
290 unlock();
291}
292
294{
295 if (m_signalsBlocked) return;
296
297 lock();
299 unlock();
300}
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QPointer< KisAcyclicSignalConnector > m_parentConnector
void connectForwardBool(QObject *sender, const char *signal, QObject *receiver, const char *method)
void backwardSignalDouble(double value)
void forwardSignalKoColor(const KoColor &value)
void forwardSignalBool(bool value)
void backwardSignalInt(int value)
void connectBackwardVariant(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardVariant(QObject *sender, const char *signal, QObject *receiver, const char *method)
KisAcyclicSignalConnector * createCoordinatedConnector()
create a coordinated connector that can be used for extending the number of self-locking connection.
void backwardSlotKoColor(const KoColor &value)
void forwardSignalVariant(const QVariant &value)
void backwardSlotVariant(const QVariant &value)
void backwardSlotResourcePair(int key, const QVariant &resource)
void connectBackwardKoColor(QObject *sender, const char *signal, QObject *receiver, const char *method)
void backwardSignalVariant(const QVariant &value)
void connectBackwardInt(QObject *sender, const char *signal, QObject *receiver, const char *method)
void forwardSlotVariant(const QVariant &value)
void forwardSlotResourcePair(int key, const QVariant &resource)
void connectBackwardVoid(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardKoColor(QObject *sender, const char *signal, QObject *receiver, const char *method)
void forwardSignalDouble(double value)
QVector< QPointer< KisAcyclicSignalConnector > > m_coordinatedConnectors
void forwardSignalResourcePair(int key, const QVariant &value)
void backwardSignalBool(bool value)
void forwardSignalInt(int value)
void connectBackwardBool(QObject *sender, const char *signal, QObject *receiver, const char *method)
void backwardSignalResourcePair(int key, const QVariant &value)
void connectBackwardDouble(QObject *sender, const char *signal, QObject *receiver, const char *method)
void backwardSignalKoColor(const KoColor &value)
void connectForwardInt(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardDouble(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardResourcePair(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectBackwardResourcePair(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardVoid(QObject *sender, const char *signal, QObject *receiver, const char *method)
void forwardSlotKoColor(const KoColor &value)