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 RECURSIVE_FRAME_TIMES = 0x10,
32 READ_ONLY_ACTION = 0x20,
35 };
36
37 Q_DECLARE_FLAGS(ProcessingFlags, ProcessingFlag)
38
39public:
41 KisNodeSP node,
42 ProcessingFlags flags = NONE,
45 KUndo2CommandExtraData *extraData = 0,
46 int macroId = -1);
48 KisNodeList nodes = KisNodeList(),
49 ProcessingFlags flags = NONE,
52 KUndo2CommandExtraData *extraData = 0,
53 int macroId = -1);
54
56
57 void applyVisitor(KisProcessingVisitorSP visitor,
60
61 void applyCommand(KUndo2Command *command,
64
65 void applyVisitorAllFrames(KisProcessingVisitorSP visitor,
68
79 void explicitlyEmitFinalSignals();
80
81 void end();
82 void cancel();
83
88 const KisStrokeId getStroke() const;
89
95 std::future<bool> &&successfullyCompletedFuture();
96
105 static void runSingleCommandStroke(KisImageSP image,
106 KUndo2Command *cmd,
109
110private:
111 void visitRecursively(KisNodeSP node,
115
116private:
119 ProcessingFlags m_flags;
125};
126
127Q_DECLARE_OPERATORS_FOR_FLAGS(KisProcessingApplicator::ProcessingFlags)
128
129
130#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