13 : m_strokeStrategy(strokeStrategy),
14 m_strokeInitialized(false),
16 m_strokeSuspended(false),
18 m_worksOnLevelOfDetail(levelOfDetail),
162 const bool effectivelyInitialized =
165 if(!effectivelyInitialized) {
180 else if(effectivelyInitialized &&
215 QQueue<KisStrokeJob*>::iterator it =
m_jobsQueue.begin();
218 if ((*it)->isCancellable()) {
313 Q_UNUSED(levelOfDetail);
bool isCancellable() const
bool canForgetAboutMe() const
QScopedPointer< KisStrokeJobStrategy > m_initStrategy
bool supportsSuspension()
void addMutatedJobs(const QVector< KisStrokeJobData * > list)
QScopedPointer< KisStrokeStrategy > m_strokeStrategy
QScopedPointer< KisStrokeJobStrategy > m_resumeStrategy
void setLodBuddy(KisStrokeSP buddy)
bool isAsynchronouslyCancellable() const
QScopedPointer< KisStrokeJobStrategy > m_finishStrategy
void prepend(KisStrokeJobStrategy *strategy, KisStrokeJobData *data, int levelOfDetail, bool isOwnJob)
void enqueue(KisStrokeJobStrategy *strategy, KisStrokeJobData *data)
void clearQueueOnCancel()
QScopedPointer< KisStrokeJobStrategy > m_cancelStrategy
bool supportsWrapAroundMode() const
KisStrokeJobData::Sequentiality nextJobSequentiality() const
KisStroke(KisStrokeStrategy *strokeStrategy, Type type=LEGACY, int levelOfDetail=0)
QScopedPointer< KisStrokeJobStrategy > m_dabStrategy
QQueue< KisStrokeJob * > m_jobsQueue
bool isInitialized() const
QScopedPointer< KisStrokeJobStrategy > m_suspendStrategy
int nextJobLevelOfDetail() const
int worksOnLevelOfDetail() const
KisStrokeSP lodBuddy() const
int m_worksOnLevelOfDetail
bool sanityCheckAllJobsAreCancellable() const
bool clearsRedoOnStart() const
qreal balancingRatioOverride() const
void suspendStroke(KisStrokeSP recipient)
KUndo2MagicString name() const
void addJob(KisStrokeJobData *data)
KisStrokeJob * popOneJob()
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
#define KIS_ASSERT_RECOVER_NOOP(cond)
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)