#include <kis_image_signal_router.h>
Definition at line 18 of file kis_image_signal_router.h.
◆ KisImageSignalRouter()
| KisImageSignalRouter::KisImageSignalRouter |
( |
KisImageWSP | image | ) |
|
Color space and profile conversion functions run without strokes, therefore they are executed in GUI hread under the global lock held.
To ensure that the receiver of the signal will not deadlock by barrier-locking the image, we should make these signals queued.
Definition at line 26 of file kis_image_signal_router.cpp.
27 : QObject(image.
data()),
29{
32
38
43
54}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void sigSizeChanged(const QPointF &oldStillPoint, const QPointF &newStillPoint)
void sigRequestNodeReselection(KisNodeSP activeNode, const KisNodeList &selectedNodes)
void sigLayersChangedAsync()
void slotNotification(KisImageSignalType type)
void sigRemoveNodeAsync(KisNodeSP node)
void sigResolutionChanged(double xRes, double yRes)
void sigNodeChanged(KisNodeSP node)
void sigImageModifiedWithoutUndo()
void sigNotification(KisImageSignalType type)
void sigNodeAddedAsync(KisNodeSP node, KisNodeAdditionFlags flags)
void sigColorSpaceChanged(const KoColorSpace *cs)
void sigProfileChanged(const KoColorProfile *profile)
#define CONNECT_TO_IMAGE_QUEUED(signal)
#define CONNECT_TO_IMAGE(signal)
References connect(), CONNECT_TO_IMAGE, CONNECT_TO_IMAGE_QUEUED, sigColorSpaceChanged(), sigImageModified(), sigImageModifiedWithoutUndo(), sigLayersChangedAsync(), sigNodeAddedAsync(), sigNodeChanged(), sigNotification(), sigProfileChanged(), sigRemoveNodeAsync(), sigRequestNodeReselection(), sigResolutionChanged(), sigSizeChanged(), and slotNotification().
◆ ~KisImageSignalRouter()
| KisImageSignalRouter::~KisImageSignalRouter |
( |
| ) |
|
|
override |
◆ emitAboutToRemoveANode()
| void KisImageSignalRouter::emitAboutToRemoveANode |
( |
KisNode * | parent, |
|
|
int | index ) |
◆ emitImageModifiedNotification
| void KisImageSignalRouter::emitImageModifiedNotification |
( |
| ) |
|
|
slot |
◆ emitNodeChanged()
◆ emitNodeHasBeenAdded()
| void KisImageSignalRouter::emitNodeHasBeenAdded |
( |
KisNode * | parent, |
|
|
int | index, |
|
|
KisNodeAdditionFlags | flags ) |
◆ emitNotification()
◆ emitNotifications()
◆ emitNotifyBatchUpdateEnded()
| void KisImageSignalRouter::emitNotifyBatchUpdateEnded |
( |
| ) |
|
◆ emitNotifyBatchUpdateStarted()
| void KisImageSignalRouter::emitNotifyBatchUpdateStarted |
( |
| ) |
|
◆ emitRequestLodPlanesSyncBlocked()
| void KisImageSignalRouter::emitRequestLodPlanesSyncBlocked |
( |
bool | value | ) |
|
◆ sigColorSpaceChanged
◆ sigImageModified
| void KisImageSignalRouter::sigImageModified |
( |
| ) |
|
|
signal |
◆ sigImageModifiedWithoutUndo
| void KisImageSignalRouter::sigImageModifiedWithoutUndo |
( |
| ) |
|
|
signal |
◆ sigLayersChangedAsync
| void KisImageSignalRouter::sigLayersChangedAsync |
( |
| ) |
|
|
signal |
◆ sigNodeAddedAsync
| void KisImageSignalRouter::sigNodeAddedAsync |
( |
KisNodeSP | node, |
|
|
KisNodeAdditionFlags | flags ) |
|
signal |
◆ sigNodeChanged
◆ sigNotification
◆ sigNotifyBatchUpdateEnded
| void KisImageSignalRouter::sigNotifyBatchUpdateEnded |
( |
| ) |
|
|
signal |
◆ sigNotifyBatchUpdateStarted
| void KisImageSignalRouter::sigNotifyBatchUpdateStarted |
( |
| ) |
|
|
signal |
Emitted whenever the image is going to issue a lot of canvas update signals and it is a good idea to group then and rerender the canvas in one go. The canvas should initiate new rerenders while the batch is in progress.
NOTE: even though the batched updates will not initiate a rerender, it does not guarantee that there will be processed during the batch. The updates may come from other sources, e.g. from mouse moves.
NOTE: this feature is used to avoid flickering when switching back from lodN plane back to lod0. All the texture tiles should be loaded with new information before mipmaps can be regenerated.
◆ sigProfileChanged
◆ sigRemoveNodeAsync
◆ sigRequestLodPlanesSyncBlocked
| void KisImageSignalRouter::sigRequestLodPlanesSyncBlocked |
( |
bool | value | ) |
|
|
signal |
Emitted whenever the image wants to update Lod0 plane of the canvas. Blocking syncing effectively means that the canvas will not try to read from these planes until the all the data is loaded. Otherwise the user will see weird flickering because of partially loaded lod0 tiles.
NOTE: while the sync is blocked, the canvas is considered to use LodN planes that are expected to contain valid data.
◆ sigRequestNodeReselection
◆ sigResolutionChanged
| void KisImageSignalRouter::sigResolutionChanged |
( |
double | xRes, |
|
|
double | yRes ) |
|
signal |
◆ sigSizeChanged
| void KisImageSignalRouter::sigSizeChanged |
( |
const QPointF & | oldStillPoint, |
|
|
const QPointF & | newStillPoint ) |
|
signal |
◆ slotNotification
Definition at line 138 of file kis_image_signal_router.cpp.
139{
141 if (!image) {
142 return;
143 }
144
149 break;
152 break;
157 break;
161 break;
165 break;
169 break;
173
176 }
177 break;
178 }
179}
@ ColorSpaceChangedSignal
@ ModifiedWithoutUndoSignal
@ ResolutionChangedSignal
const KoColorSpace * colorSpace() const
const KoColorProfile * profile() const
KisNodeList newSelectedNodes
ComplexSizeChangedSignal sizeChangedSignal
ComplexNodeReselectionSignal nodeReselectionSignal
References KisImage::colorSpace(), ColorSpaceChangedSignal, KisImageSignalType::id, KisImage::invalidateAllFrames(), LayersChangedSignal, m_image, ModifiedWithoutUndoSignal, ComplexNodeReselectionSignal::newActiveNode, ComplexNodeReselectionSignal::newSelectedNodes, ComplexSizeChangedSignal::newStillPoint, NodeReselectionRequestSignal, KisImageSignalType::nodeReselectionSignal, ComplexSizeChangedSignal::oldStillPoint, KisImage::profile(), ProfileChangedSignal, ResolutionChangedSignal, sigColorSpaceChanged(), sigImageModifiedWithoutUndo(), sigLayersChangedAsync(), sigProfileChanged(), sigRequestNodeReselection(), sigResolutionChanged(), sigSizeChanged(), SizeChangedSignal, KisImageSignalType::sizeChangedSignal, KisWeakSharedPtr< T >::toStrongRef(), KisImage::xRes(), and KisImage::yRes().
◆ m_image
The documentation for this class was generated from the following files: