Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_processing_applicator.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_PROCESSING_APPLICATOR_H
8#define __KIS_PROCESSING_APPLICATOR_H
9
10#include <future>
11
13#include <kundo2magicstring.h>
14
15#include "KisImageSignals.h"
17#include "kis_types.h"
18
19#include "kritaimage_export.h"
20
21class KRITAIMAGE_EXPORT KisProcessingApplicator
22{
23public:
25 NONE = 0x0,
26 RECURSIVE = 0x1,
27 NO_UI_UPDATES = 0x2,
28 SUPPORTS_WRAPAROUND_MODE = 0x4,
29 NO_IMAGE_UPDATES = 0x8
30 };
31
32 Q_DECLARE_FLAGS(ProcessingFlags, ProcessingFlag)
33
34public:
36 KisNodeSP node,
37 ProcessingFlags flags = NONE,
40 KUndo2CommandExtraData *extraData = 0,
41 int macroId = -1);
43 KisNodeList nodes = KisNodeList(),
44 ProcessingFlags flags = NONE,
47 KUndo2CommandExtraData *extraData = 0,
48 int macroId = -1);
49
51
52 void applyVisitor(KisProcessingVisitorSP visitor,
55
56 void applyCommand(KUndo2Command *command,
59
60 void applyVisitorAllFrames(KisProcessingVisitorSP visitor,
63
74 void explicitlyEmitFinalSignals();
75
76 void end();
77 void cancel();
78
83 const KisStrokeId getStroke() const;
84
90 std::future<bool> &&successfullyCompletedFuture();
91
100 static void runSingleCommandStroke(KisImageSP image,
101 KUndo2Command *cmd,
104
105private:
106 void visitRecursively(KisNodeSP node,
110
111private:
114 ProcessingFlags m_flags;
120};
121
122Q_DECLARE_OPERATORS_FOR_FLAGS(KisProcessingApplicator::ProcessingFlags)
123
124
125#endif /* __KIS_PROCESSING_APPLICATOR_H */
@ NONE
QVector< KisImageSignalType > KisImageSignalVector
Q_DECLARE_FLAGS(KisUpdaterContextSnapshotEx, KisUpdaterContextSnapshotExTag)
QSharedPointer< bool > m_sharedAllFramesToken
std::future< bool > m_successfullyCompletedFuture
Q_DECLARE_OPERATORS_FOR_FLAGS(KisBaseRectsWalker::SubtreeVisitFlags)
QList< KisNodeSP > KisNodeList
Definition kis_types.h:264