7#ifndef __MOVE_STROKE_STRATEGY_H
8#define __MOVE_STROKE_STRATEGY_H
13#include "kritaui_export.h"
17#include <QElapsedTimer>
23#include <unordered_map>
41 Data(
const Data &rhs,
int levelOfDetail);
91 void setUpdatesEnabled(
bool value);
93 void doCanvasUpdate(
bool forceUpdate =
false);
94 void tryPostUpdateJob(
bool forceUpdate);
98 QScopedPointer<Private>
m_d;
107 bool m_updatesEnabled {
true};
110 bool m_hasPostponedJob {
false};
111 const int m_updateInterval {30};
113 template <
typename Functor>
114 void recursiveApplyNodes(
KisNodeList nodes, Functor &&func);
float value(const T *src, size_t ch)
void cancelStrokeCallback() override
void initStrokeCallback() override
void finishStrokeCallback() override
void doStrokeCallback(KisStrokeJobData *data) override
virtual KisStrokeStrategy * createLodClone(int levelOfDetail)
KisNodeSelectionRecipe m_requestedNodeSelection
void sigStrokeStartedEmpty()
void setUndoEnabled(bool value)
QHash< KisNodeSP, QRect > m_dirtyRects
void sigLayersPicked(const KisNodeList &nodes)
QElapsedTimer m_updateTimer
QScopedPointer< Private > m_d
void sigHandlesRectCalculated(const QRect &handlesRect)
QSet< KisNodeSP > m_blacklistedNodes
QSharedPointer< std::pair< KisNodeList, QSet< KisNodeSP > > > m_sharedNodes