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

#include <kis_color_sampler_stroke_strategy.h>

+ Inheritance diagram for KisColorSamplerStrokeStrategy:

Classes

class  Data
 
class  FinalizeData
 
struct  Private
 

Signals

void sigColorUpdated (const KoColor &color)
 
void sigFinalColorSelected (const KoColor &color)
 

Public Member Functions

KisStrokeStrategycreateLodClone (int levelOfDetail) override
 
void doStrokeCallback (KisStrokeJobData *data) override
 
 KisColorSamplerStrokeStrategy (int radius, int blend, int lod=0)
 
 ~KisColorSamplerStrokeStrategy () override
 
- Public Member Functions inherited from KisSimpleStrokeStrategy
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 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
 
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 ()
 

Private Attributes

const QScopedPointer< Privatem_d
 

Additional Inherited Members

- Public Types inherited from KisSimpleStrokeStrategy
enum  JobType {
  JOB_INIT = 0 , JOB_CANCEL , JOB_FINISH , JOB_DOSTROKE ,
  JOB_SUSPEND , JOB_RESUME , NJOBS
}
 
- Static Public Member Functions inherited from KisSimpleStrokeStrategy
static QLatin1String jobTypeToString (JobType type)
 
- Protected Member Functions inherited from KisSimpleStrokeStrategy
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)
 

Detailed Description

Definition at line 15 of file kis_color_sampler_stroke_strategy.h.

Constructor & Destructor Documentation

◆ KisColorSamplerStrokeStrategy()

KisColorSamplerStrokeStrategy::KisColorSamplerStrokeStrategy ( int radius,
int blend,
int lod = 0 )

Definition at line 23 of file kis_color_sampler_stroke_strategy.cpp.

24 : KisSimpleStrokeStrategy(QLatin1String("KisColorSamplerStrokeStrategy")),
25 m_d(new Private)
26{
30
31 m_d->radius = qMax(1, qRound(radius * KisLodTransform::lodToScale(lod)));
32 m_d->blend = blend;
33}
static qreal lodToScale(int levelOfDetail)
void enableJob(JobType type, bool enable=true, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
KisSimpleStrokeStrategy(const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
void setClearsRedoOnStart(bool value)
void setSupportsWrapAroundMode(bool value)
T blend(T src, T srcAlpha, T dst, T dstAlpha, T cfValue)

References KisSimpleStrokeStrategy::enableJob(), KisSimpleStrokeStrategy::JOB_DOSTROKE, KisLodTransformBase::lodToScale(), m_d, KisStrokeStrategy::setClearsRedoOnStart(), and KisStrokeStrategy::setSupportsWrapAroundMode().

◆ ~KisColorSamplerStrokeStrategy()

KisColorSamplerStrokeStrategy::~KisColorSamplerStrokeStrategy ( )
override

Definition at line 35 of file kis_color_sampler_stroke_strategy.cpp.

36{
37}

Member Function Documentation

◆ createLodClone()

KisStrokeStrategy * KisColorSamplerStrokeStrategy::createLodClone ( int levelOfDetail)
overridevirtual

Reimplemented from KisStrokeStrategy.

Definition at line 60 of file kis_color_sampler_stroke_strategy.cpp.

61{
62 m_d->shouldSkipWork = true;
63
64 KisColorSamplerStrokeStrategy *lodStrategy = new KisColorSamplerStrokeStrategy(m_d->radius, m_d->blend, levelOfDetail);
67 Qt::DirectConnection);
68 return lodStrategy;
69}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisColorSamplerStrokeStrategy(int radius, int blend, int lod=0)
void sigColorUpdated(const KoColor &color)

References connect(), KisColorSamplerStrokeStrategy(), m_d, and sigColorUpdated().

◆ doStrokeCallback()

void KisColorSamplerStrokeStrategy::doStrokeCallback ( KisStrokeJobData * data)
overridevirtual

Reimplemented from KisSimpleStrokeStrategy.

Definition at line 39 of file kis_color_sampler_stroke_strategy.cpp.

40{
41 if (m_d->shouldSkipWork) return;
42
43 Data *d = dynamic_cast<Data*>(data);
44 FinalizeData *finalize = dynamic_cast<FinalizeData*>(data);
45
46 if (d) {
47 KoColor color;
48 KoColor previous = d->currentColor;
49 if (KisToolUtils::sampleColor(color, d->dev, d->pt, &previous, m_d->radius, m_d->blend)) {
50 m_d->lastSelectedColor = color;
51 Q_EMIT sigColorUpdated(color);
52 }
53 } else if (finalize) {
54 if (m_d->lastSelectedColor) {
55 Q_EMIT sigFinalColorSelected(*m_d->lastSelectedColor);
56 }
57 }
58}
void sigFinalColorSelected(const KoColor &color)
bool sampleColor(KoColor &out_color, KisPaintDeviceSP dev, const QPoint &pos, KoColor const *const blendColor, int radius, int blend, bool pure)
void finalize()
Definition utilities.cpp:99

References m_d, KisToolUtils::sampleColor(), sigColorUpdated(), and sigFinalColorSelected().

◆ sigColorUpdated

void KisColorSamplerStrokeStrategy::sigColorUpdated ( const KoColor & color)
signal

◆ sigFinalColorSelected

void KisColorSamplerStrokeStrategy::sigFinalColorSelected ( const KoColor & color)
signal

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisColorSamplerStrokeStrategy::m_d
private

Definition at line 60 of file kis_color_sampler_stroke_strategy.h.


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