|
Krita Source Code Documentation
|
#include <kis_acyclic_signal_connector.h>
Inheritance diagram for KisAcyclicSignalConnector:Public Types | |
| typedef std::unique_lock< KisAcyclicSignalConnector > | Blocker |
Signals | |
| void | backwardSignalBool (bool value) |
| void | backwardSignalDouble (double value) |
| void | backwardSignalInt (int value) |
| void | backwardSignalKoColor (const KoColor &value) |
| void | backwardSignalResourcePair (int key, const QVariant &value) |
| void | backwardSignalVariant (const QVariant &value) |
| void | backwardSignalVoid () |
| void | forwardSignalBool (bool value) |
| void | forwardSignalDouble (double value) |
| void | forwardSignalInt (int value) |
| void | forwardSignalKoColor (const KoColor &value) |
| void | forwardSignalResourcePair (int key, const QVariant &value) |
| void | forwardSignalVariant (const QVariant &value) |
| void | forwardSignalVoid () |
Public Member Functions | |
| void | connectBackwardBool (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectBackwardDouble (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectBackwardInt (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectBackwardKoColor (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectBackwardResourcePair (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectBackwardVariant (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectBackwardVoid (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardBool (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardDouble (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardInt (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardKoColor (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardResourcePair (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardVariant (QObject *sender, const char *signal, QObject *receiver, const char *method) |
| void | connectForwardVoid (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. | |
| bool | isLocked () const |
| KisAcyclicSignalConnector (QObject *parent=0) | |
| void | lock () |
| void | unlock () |
| ~KisAcyclicSignalConnector () | |
Private Slots | |
| void | backwardSlotBool (bool value) |
| void | backwardSlotDouble (double value) |
| void | backwardSlotInt (int value) |
| void | backwardSlotKoColor (const KoColor &value) |
| void | backwardSlotResourcePair (int key, const QVariant &resource) |
| void | backwardSlotVariant (const QVariant &value) |
| void | backwardSlotVoid () |
| void | forwardSlotBool (bool value) |
| void | forwardSlotDouble (double value) |
| void | forwardSlotInt (int value) |
| void | forwardSlotKoColor (const KoColor &value) |
| void | forwardSlotResourcePair (int key, const QVariant &resource) |
| void | forwardSlotVariant (const QVariant &value) |
| void | forwardSlotVoid () |
Private Member Functions | |
| void | coordinatedLock () |
| void | coordinatedUnlock () |
Private Attributes | |
| QVector< QPointer< KisAcyclicSignalConnector > > | m_coordinatedConnectors |
| QPointer< KisAcyclicSignalConnector > | m_parentConnector |
| int | m_signalsBlocked |
A special class for connecting UI elements to manager classes. It allows to avoid direct calling blockSignals() for the sender UI element all the time. This is the most important when the measured value can be changed not only by the user through the UI, but also by the manager according to some internal rules.
Example:
Suppose we have the following connections:
1) QDoubleSpinBox::valueChanged(double) -> Manager::slotSetValue(double) 2) Manager::valueChanged(double) -> QDoubleSpinBox::setValue(double)
Now if the manager decides to change/correct the value, the spinbox will go into an infinite loop.
See an example in KisToolCropConfigWidget.
NOTE (coordinated connectors):
Please make sure that you don't convert more than one forward and one backward connection to the connector! If you do so, they will become connected to the same forwarding slot and, therefore, both output signals will be emitted on every incoming signal.
To connect multiple connections that block recursive calls, please use "coordinated connectors". Each such connector will have two more connection slots that you can reuse.
Definition at line 52 of file kis_acyclic_signal_connector.h.
| typedef std::unique_lock<KisAcyclicSignalConnector> KisAcyclicSignalConnector::Blocker |
Definition at line 56 of file kis_acyclic_signal_connector.h.
| KisAcyclicSignalConnector::KisAcyclicSignalConnector | ( | QObject * | parent = 0 | ) |
Definition at line 12 of file kis_acyclic_signal_connector.cpp.
| KisAcyclicSignalConnector::~KisAcyclicSignalConnector | ( | ) |
Definition at line 18 of file kis_acyclic_signal_connector.cpp.
|
signal |
|
signal |
|
signal |
|
signal |
|
signal |
|
signal |
|
privateslot |
Definition at line 221 of file kis_acyclic_signal_connector.cpp.
References backwardSignalBool(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 185 of file kis_acyclic_signal_connector.cpp.
References backwardSignalDouble(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 203 of file kis_acyclic_signal_connector.cpp.
References backwardSignalInt(), lock(), m_signalsBlocked, unlock(), and value().
Definition at line 293 of file kis_acyclic_signal_connector.cpp.
References backwardSignalKoColor(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 275 of file kis_acyclic_signal_connector.cpp.
References backwardSignalResourcePair(), lock(), m_signalsBlocked, and unlock().
|
privateslot |
Definition at line 257 of file kis_acyclic_signal_connector.cpp.
References backwardSignalVariant(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 239 of file kis_acyclic_signal_connector.cpp.
References backwardSignalVoid(), lock(), m_signalsBlocked, and unlock().
| void KisAcyclicSignalConnector::connectBackwardBool | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 62 of file kis_acyclic_signal_connector.cpp.
References backwardSignalBool(), backwardSlotBool(), and connect().
| void KisAcyclicSignalConnector::connectBackwardDouble | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 30 of file kis_acyclic_signal_connector.cpp.
References backwardSignalDouble(), backwardSlotDouble(), and connect().
| void KisAcyclicSignalConnector::connectBackwardInt | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 46 of file kis_acyclic_signal_connector.cpp.
References backwardSignalInt(), backwardSlotInt(), and connect().
| void KisAcyclicSignalConnector::connectBackwardKoColor | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 119 of file kis_acyclic_signal_connector.cpp.
References backwardSignalKoColor(), backwardSlotKoColor(), and connect().
| void KisAcyclicSignalConnector::connectBackwardResourcePair | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 107 of file kis_acyclic_signal_connector.cpp.
References backwardSignalResourcePair(), backwardSlotResourcePair(), and connect().
| void KisAcyclicSignalConnector::connectBackwardVariant | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 94 of file kis_acyclic_signal_connector.cpp.
References backwardSignalVariant(), backwardSlotVariant(), and connect().
| void KisAcyclicSignalConnector::connectBackwardVoid | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 78 of file kis_acyclic_signal_connector.cpp.
References backwardSignalVoid(), backwardSlotVoid(), and connect().
| void KisAcyclicSignalConnector::connectForwardBool | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 54 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalBool(), and forwardSlotBool().
| void KisAcyclicSignalConnector::connectForwardDouble | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 22 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalDouble(), and forwardSlotDouble().
| void KisAcyclicSignalConnector::connectForwardInt | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 38 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalInt(), and forwardSlotInt().
| void KisAcyclicSignalConnector::connectForwardKoColor | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 113 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalKoColor(), and forwardSlotKoColor().
| void KisAcyclicSignalConnector::connectForwardResourcePair | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 101 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalResourcePair(), and forwardSlotResourcePair().
| void KisAcyclicSignalConnector::connectForwardVariant | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 86 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalVariant(), and forwardSlotVariant().
| void KisAcyclicSignalConnector::connectForwardVoid | ( | QObject * | sender, |
| const char * | signal, | ||
| QObject * | receiver, | ||
| const char * | method ) |
Definition at line 70 of file kis_acyclic_signal_connector.cpp.
References connect(), forwardSignalVoid(), and forwardSlotVoid().
|
private |
Lock this connector only.
Definition at line 158 of file kis_acyclic_signal_connector.cpp.
References m_signalsBlocked.
|
private |
Unlock this connector only.
Definition at line 163 of file kis_acyclic_signal_connector.cpp.
References m_signalsBlocked.
| KisAcyclicSignalConnector * KisAcyclicSignalConnector::createCoordinatedConnector | ( | ) |
create a coordinated connector that can be used for extending the number of self-locking connection.
The coordinated connector can be used to extend the number of self-locking connections. Each coordinated connector adds two more connection slots (forward and backward). Lock of any connector in a coordinated group will lock the whole group.
The created connector is owned by *this, don't delete it!
Definition at line 168 of file kis_acyclic_signal_connector.cpp.
References KisAcyclicSignalConnector(), m_coordinatedConnectors, and m_parentConnector.
|
signal |
|
signal |
|
signal |
|
signal |
|
signal |
|
signal |
|
privateslot |
Definition at line 212 of file kis_acyclic_signal_connector.cpp.
References forwardSignalBool(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 176 of file kis_acyclic_signal_connector.cpp.
References forwardSignalDouble(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 194 of file kis_acyclic_signal_connector.cpp.
References forwardSignalInt(), lock(), m_signalsBlocked, unlock(), and value().
Definition at line 284 of file kis_acyclic_signal_connector.cpp.
References forwardSignalKoColor(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 266 of file kis_acyclic_signal_connector.cpp.
References forwardSignalResourcePair(), lock(), m_signalsBlocked, and unlock().
|
privateslot |
Definition at line 248 of file kis_acyclic_signal_connector.cpp.
References forwardSignalVariant(), lock(), m_signalsBlocked, unlock(), and value().
|
privateslot |
Definition at line 230 of file kis_acyclic_signal_connector.cpp.
References forwardSignalVoid(), lock(), m_signalsBlocked, and unlock().
| bool KisAcyclicSignalConnector::isLocked | ( | ) | const |
Definition at line 153 of file kis_acyclic_signal_connector.cpp.
References m_signalsBlocked.
| void KisAcyclicSignalConnector::lock | ( | ) |
Lock the connector and all its coordinated child connectors
Definition at line 125 of file kis_acyclic_signal_connector.cpp.
References coordinatedLock(), m_coordinatedConnectors, and m_parentConnector.
| void KisAcyclicSignalConnector::unlock | ( | ) |
Unlock the connector and all its coordinated child connectors
Definition at line 139 of file kis_acyclic_signal_connector.cpp.
References coordinatedUnlock(), m_coordinatedConnectors, and m_parentConnector.
|
private |
Definition at line 192 of file kis_acyclic_signal_connector.h.
|
private |
Definition at line 193 of file kis_acyclic_signal_connector.h.
|
private |
Definition at line 191 of file kis_acyclic_signal_connector.h.