Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSimpleStrokeStrategy Class Reference

#include <kis_simple_stroke_strategy.h>

+ Inheritance diagram for KisSimpleStrokeStrategy:

Public Types

enum  JobType {
  JOB_INIT = 0 , JOB_CANCEL , JOB_FINISH , JOB_DOSTROKE ,
  JOB_SUSPEND , JOB_RESUME , NJOBS
}
 

Public Member Functions

virtual void cancelStrokeCallback ()
 
KisStrokeJobDatacreateCancelData () override
 
KisStrokeJobStrategycreateCancelStrategy () override
 
KisStrokeJobStrategycreateDabStrategy () override
 
KisStrokeJobDatacreateFinishData () override
 
KisStrokeJobStrategycreateFinishStrategy () override
 
KisStrokeJobDatacreateInitData () override
 
KisStrokeJobStrategycreateInitStrategy () override
 
KisStrokeJobDatacreateResumeData () override
 
KisStrokeJobStrategycreateResumeStrategy () override
 
KisStrokeJobDatacreateSuspendData () override
 
KisStrokeJobStrategycreateSuspendStrategy () override
 
virtual void doStrokeCallback (KisStrokeJobData *data)
 
virtual void finishStrokeCallback ()
 
virtual void initStrokeCallback ()
 
 KisSimpleStrokeStrategy (const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
 
virtual void resumeStrokeCallback ()
 
virtual void suspendStrokeCallback ()
 
- Public Member Functions inherited from KisStrokeStrategy
qreal balancingRatioOverride () const
 
bool canForgetAboutMe () const
 
bool clearsRedoOnStart () const
 
virtual KisStrokeStrategycreateLodClone (int levelOfDetail)
 
KisLodPreferences currentLodPreferences () const
 
bool forceLodModeIfPossible () const
 
QString id () const
 
bool isAsynchronouslyCancellable () const
 
bool isExclusive () const
 
 KisStrokeStrategy (const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
 
KUndo2MagicString name () const
 
bool needsExplicitCancel () const
 
virtual void notifyUserEndedStroke ()
 
virtual void notifyUserStartedStroke ()
 
bool requestsOtherStrokesToEnd () const
 
void setForceLodModeIfPossible (bool forceLodModeIfPossible)
 
void setMutatedJobsInterface (KisStrokesQueueMutatedJobInterface *mutatedJobsInterface, KisStrokeId strokeId)
 
bool supportsWrapAroundMode () const
 
virtual void tryCancelCurrentStrokeJobAsync ()
 tryCancelCurrentStrokeJobAsync is called by the strokes queue when the stroke is being cancelled. The stroke strategy may or may not handle this request and cancel the currently running long action.
 
virtual ~KisStrokeStrategy ()
 

Static Public Member Functions

static QLatin1String jobTypeToString (JobType type)
 

Protected Member Functions

void enableJob (JobType type, bool enable=true, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
 
 KisSimpleStrokeStrategy (const KisSimpleStrokeStrategy &rhs)
 
- Protected Member Functions inherited from KisStrokeStrategy
void addMutatedJob (KisStrokeJobData *data)
 
void addMutatedJobs (const QVector< KisStrokeJobData * > list)
 
 KisStrokeStrategy (const KisStrokeStrategy &rhs)
 
void setAsynchronouslyCancellable (bool value)
 
void setBalancingRatioOverride (qreal value)
 
void setCanForgetAboutMe (bool value)
 
void setClearsRedoOnStart (bool value)
 
void setExclusive (bool value)
 
void setNeedsExplicitCancel (bool value)
 
void setRequestsOtherStrokesToEnd (bool value)
 
void setSupportsWrapAroundMode (bool value)
 

Private Member Functions

KisStrokeJobDatacreateData (JobType type)
 
KisStrokeJobStrategycreateStrategy (JobType type)
 

Private Attributes

QVector< bool > m_jobEnabled
 
QVector< KisStrokeJobData::Exclusivitym_jobExclusivity
 
QVector< KisStrokeJobData::Sequentialitym_jobSequentiality
 

Detailed Description

Definition at line 15 of file kis_simple_stroke_strategy.h.

Member Enumeration Documentation

◆ JobType

Constructor & Destructor Documentation

◆ KisSimpleStrokeStrategy() [1/2]

KisSimpleStrokeStrategy::KisSimpleStrokeStrategy ( const QLatin1String & id,
const KUndo2MagicString & name = KUndo2MagicString() )

Definition at line 68 of file kis_simple_stroke_strategy.cpp.

70 m_jobEnabled(NJOBS, false),
73{
74}
QVector< KisStrokeJobData::Sequentiality > m_jobSequentiality
QVector< KisStrokeJobData::Exclusivity > m_jobExclusivity
KisStrokeStrategy(const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
KUndo2MagicString name() const

◆ KisSimpleStrokeStrategy() [2/2]

KisSimpleStrokeStrategy::KisSimpleStrokeStrategy ( const KisSimpleStrokeStrategy & rhs)
protected

Member Function Documentation

◆ cancelStrokeCallback()

◆ createCancelData()

KisStrokeJobData * KisSimpleStrokeStrategy::createCancelData ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 153 of file kis_simple_stroke_strategy.cpp.

154{
155 return createData(JOB_CANCEL);
156}
KisStrokeJobData * createData(JobType type)

References createData(), and JOB_CANCEL.

◆ createCancelStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createCancelStrategy ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 115 of file kis_simple_stroke_strategy.cpp.

116{
118}
KisStrokeJobStrategy * createStrategy(JobType type)

References createStrategy(), and JOB_CANCEL.

◆ createDabStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createDabStrategy ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 120 of file kis_simple_stroke_strategy.cpp.

121{
123}

References createStrategy(), and JOB_DOSTROKE.

◆ createData()

KisStrokeJobData * KisSimpleStrokeStrategy::createData ( JobType type)
private

Definition at line 135 of file kis_simple_stroke_strategy.cpp.

136{
137 KisStrokeJobData::Sequentiality sequentiality = m_jobSequentiality[(int)type];
138 KisStrokeJobData::Exclusivity exclusivity = m_jobExclusivity[(int)type];
139
140 return new KisStrokeJobData(sequentiality, exclusivity);
141}

References m_jobExclusivity, and m_jobSequentiality.

◆ createFinishData()

KisStrokeJobData * KisSimpleStrokeStrategy::createFinishData ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 148 of file kis_simple_stroke_strategy.cpp.

149{
150 return createData(JOB_FINISH);
151}

References createData(), and JOB_FINISH.

◆ createFinishStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createFinishStrategy ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 110 of file kis_simple_stroke_strategy.cpp.

111{
113}

References createStrategy(), and JOB_FINISH.

◆ createInitData()

KisStrokeJobData * KisSimpleStrokeStrategy::createInitData ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 143 of file kis_simple_stroke_strategy.cpp.

144{
145 return createData(JOB_INIT);
146}

References createData(), and JOB_INIT.

◆ createInitStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createInitStrategy ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 105 of file kis_simple_stroke_strategy.cpp.

106{
107 return createStrategy(JOB_INIT);
108}

References createStrategy(), and JOB_INIT.

◆ createResumeData()

KisStrokeJobData * KisSimpleStrokeStrategy::createResumeData ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 163 of file kis_simple_stroke_strategy.cpp.

164{
165 return createData(JOB_RESUME);
166}

References createData(), and JOB_RESUME.

◆ createResumeStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createResumeStrategy ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 130 of file kis_simple_stroke_strategy.cpp.

131{
133}

References createStrategy(), and JOB_RESUME.

◆ createStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createStrategy ( JobType type)
private

Definition at line 94 of file kis_simple_stroke_strategy.cpp.

95{
96 KisStrokeJobStrategy *strategy = 0;
97
98 if(m_jobEnabled[(int)type]) {
99 strategy = new SimpleStrokeJobStrategy(type, this);
100 }
101
102 return strategy;
103}

References m_jobEnabled.

◆ createSuspendData()

KisStrokeJobData * KisSimpleStrokeStrategy::createSuspendData ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 158 of file kis_simple_stroke_strategy.cpp.

159{
160 return createData(JOB_SUSPEND);
161}

References createData(), and JOB_SUSPEND.

◆ createSuspendStrategy()

KisStrokeJobStrategy * KisSimpleStrokeStrategy::createSuspendStrategy ( )
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 125 of file kis_simple_stroke_strategy.cpp.

126{
128}

References createStrategy(), and JOB_SUSPEND.

◆ doStrokeCallback()

◆ enableJob()

void KisSimpleStrokeStrategy::enableJob ( JobType type,
bool enable = true,
KisStrokeJobData::Sequentiality sequentiality = KisStrokeJobData::SEQUENTIAL,
KisStrokeJobData::Exclusivity exclusivity = KisStrokeJobData::NORMAL )
protected

Definition at line 84 of file kis_simple_stroke_strategy.cpp.

87{
88 m_jobEnabled[(int)type] = enable;
89 m_jobSequentiality[(int)type] = sequentiality;
90 m_jobExclusivity[(int)type] = exclusivity;
91}

References m_jobEnabled, m_jobExclusivity, and m_jobSequentiality.

◆ finishStrokeCallback()

◆ initStrokeCallback()

◆ jobTypeToString()

QLatin1String KisSimpleStrokeStrategy::jobTypeToString ( KisSimpleStrokeStrategy::JobType type)
static

Definition at line 193 of file kis_simple_stroke_strategy.cpp.

194{
195 QLatin1String result;
196
197 switch (type) {
198 case JOB_INIT:
199 result = QLatin1String("init");
200 break;
201 case JOB_DOSTROKE:
202 result = QLatin1String("dostroke");
203 break;
204 case JOB_FINISH:
205 result = QLatin1String("finish");
206 break;
207 case JOB_CANCEL:
208 result = QLatin1String("cancel");
209 break;
210 case JOB_SUSPEND:
211 result = QLatin1String("suspend");
212 break;
213 case JOB_RESUME:
214 result = QLatin1String("resume");
215 break;
216 case NJOBS:
217 qFatal("Undefined stroke job type: %d", type);
218 }
219
220 return result;
221}

References JOB_CANCEL, JOB_DOSTROKE, JOB_FINISH, JOB_INIT, JOB_RESUME, JOB_SUSPEND, and NJOBS.

◆ resumeStrokeCallback()

void KisSimpleStrokeStrategy::resumeStrokeCallback ( )
virtual

◆ suspendStrokeCallback()

void KisSimpleStrokeStrategy::suspendStrokeCallback ( )
virtual

Member Data Documentation

◆ m_jobEnabled

QVector<bool> KisSimpleStrokeStrategy::m_jobEnabled
private

Definition at line 67 of file kis_simple_stroke_strategy.h.

◆ m_jobExclusivity

QVector<KisStrokeJobData::Exclusivity> KisSimpleStrokeStrategy::m_jobExclusivity
private

Definition at line 69 of file kis_simple_stroke_strategy.h.

◆ m_jobSequentiality

QVector<KisStrokeJobData::Sequentiality> KisSimpleStrokeStrategy::m_jobSequentiality
private

Definition at line 68 of file kis_simple_stroke_strategy.h.


The documentation for this class was generated from the following files: