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

#include <KisChannelsThumbnailsStrokeStrategy.h>

+ Inheritance diagram for KisChannelsThumbnailsStrokeStrategy:

Signals

void thumbnailsUpdated (const QVector< QImage > &channels, const KoColorSpace *cs)
 
- Signals inherited from KisIdleTaskStrokeStrategy
void sigIdleTaskFinished ()
 

Public Member Functions

 KisImageThumbnailStrokeStrategyBase (KisPaintDeviceSP device, const QRect &rect, const QSize &thumbnailSize, bool isPixelArt, const KoColorProfile *profile, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags)
 
- Public Member Functions inherited from KisImageThumbnailStrokeStrategyBase
 KisImageThumbnailStrokeStrategyBase (KisPaintDeviceSP device, const QRect &rect, const QSize &thumbnailSize, bool isPixelArt, const KoColorProfile *profile, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags)
 
 ~KisImageThumbnailStrokeStrategyBase () override
 
- Public Member Functions inherited from KisIdleTaskStrokeStrategy
KisStrokeStrategycreateLodClone (int levelOfDetail) override
 
QWeakPointer< boost::none_t > idleTaskCookie ()
 
 KisIdleTaskStrokeStrategy (const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
 
 ~KisIdleTaskStrokeStrategy ()
 
- Public Member Functions inherited from KisRunnableBasedStrokeStrategy
void doStrokeCallback (KisStrokeJobData *data) override
 
 KisRunnableBasedStrokeStrategy (const KisRunnableBasedStrokeStrategy &rhs)
 
 KisRunnableBasedStrokeStrategy (const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
 
KisRunnableStrokeJobsInterfacerunnableJobsInterface () const
 
 ~KisRunnableBasedStrokeStrategy ()
 
- 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
 
 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 ()
 

Protected Member Functions

void reportThumbnailGenerationCompleted (KisPaintDeviceSP device, const QRect &rect) override
 
- Protected Member Functions inherited from KisIdleTaskStrokeStrategy
void finishStrokeCallback () override
 
- 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)
 

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 KisIdleTaskStrokeStrategy
static int preferredIdleTaskMaximumTime ()
 
static int preferredIdleWatcherInterval ()
 
- Static Public Member Functions inherited from KisSimpleStrokeStrategy
static QLatin1String jobTypeToString (JobType type)
 
- Protected Attributes inherited from KisImageThumbnailStrokeStrategyBase
KoColorConversionTransformation::ConversionFlags m_conversionFlags
 
const KoColorProfilem_profile
 
KoColorConversionTransformation::Intent m_renderingIntent
 

Detailed Description

Definition at line 13 of file KisChannelsThumbnailsStrokeStrategy.h.

Member Function Documentation

◆ KisImageThumbnailStrokeStrategyBase()

KisImageThumbnailStrokeStrategyBase::KisImageThumbnailStrokeStrategyBase ( KisPaintDeviceSP device,
const QRect & rect,
const QSize & thumbnailSize,
bool isPixelArt,
const KoColorProfile * profile,
KoColorConversionTransformation::Intent renderingIntent,
KoColorConversionTransformation::ConversionFlags conversionFlags )

Definition at line 28 of file KisImageThumbnailStrokeStrategy.cpp.

32 : KisIdleTaskStrokeStrategy(QLatin1String("OverviewThumbnail"), kundo2_i18n("Update overview thumbnail")),
33 m_device(device),
34 m_rect(rect),
35 m_thumbnailSize(thumbnailSize),
36 m_isPixelArt(isPixelArt),
37 m_profile(profile),
38 m_renderingIntent(renderingIntent),
39 m_conversionFlags(conversionFlags)
40{
41}
KisIdleTaskStrokeStrategy(const QLatin1String &id, const KUndo2MagicString &name=KUndo2MagicString())
KoColorConversionTransformation::ConversionFlags m_conversionFlags
KoColorConversionTransformation::Intent m_renderingIntent
KUndo2MagicString kundo2_i18n(const char *text)

◆ reportThumbnailGenerationCompleted()

void KisChannelsThumbnailsStrokeStrategy::reportThumbnailGenerationCompleted ( KisPaintDeviceSP device,
const QRect & rect )
overrideprotectedvirtual

Implements KisImageThumbnailStrokeStrategyBase.

Definition at line 22 of file KisChannelsThumbnailsStrokeStrategy.cpp.

23{
24 const KoColorSpace* cs = device->colorSpace();
25 const int channelCount = cs->channelCount();
26 const QSize thumbnailSize = rect.size();
27 const bool invert = (cs->colorModelId() == CMYKAColorModelID);
28
29 QVector<QImage> thumbnails;
30 thumbnails.reserve(channelCount);
31 for (int i = 0; i < channelCount; i++) {
32 thumbnails.push_back(QImage(thumbnailSize, QImage::Format_Grayscale8));
33 }
34
35 KisSequentialConstIterator it(device, QRect(0, 0, thumbnailSize.width(), thumbnailSize.height()));
36
37 for (int y = 0; y < thumbnailSize.height(); y++) {
38 for (int x = 0; x < thumbnailSize.width(); x++) {
39 it.nextPixel();
40 const quint8* pixel = it.rawDataConst();
41 for (int chan = 0; chan < channelCount; ++chan) {
42 QImage &img = thumbnails[chan];
43 if (invert) {
44 *(img.scanLine(y) + x) = 255 - cs->scaleToU8(pixel, chan);
45 }
46 else {
47 *(img.scanLine(y) + x) = cs->scaleToU8(pixel, chan);
48 }
49 }
50 }
51 }
52
53 Q_EMIT thumbnailsUpdated(thumbnails, cs);
54}
const KoID CMYKAColorModelID("CMYKA", ki18n("CMYK/Alpha"))
void thumbnailsUpdated(const QVector< QImage > &channels, const KoColorSpace *cs)
const KoColorSpace * colorSpace() const
virtual quint8 scaleToU8(const quint8 *srcPixel, qint32 channelPos) const =0
virtual KoID colorModelId() const =0
virtual quint32 channelCount() const =0

References KoColorSpace::channelCount(), CMYKAColorModelID, KoColorSpace::colorModelId(), KisPaintDevice::colorSpace(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nextPixel(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawDataConst(), KoColorSpace::scaleToU8(), and thumbnailsUpdated().

◆ thumbnailsUpdated

void KisChannelsThumbnailsStrokeStrategy::thumbnailsUpdated ( const QVector< QImage > & channels,
const KoColorSpace * cs )
signal

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