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

#include <KoAbstractGradient.h>

+ Inheritance diagram for KoAbstractGradient:

Public Member Functions

virtual void bakeVariableColors (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
KoAbstractGradientSP cloneAndBakeVariableColors (KoCanvasResourcesInterfaceSP canvasResourcesInterface) const
 
KoAbstractGradientSP cloneAndUpdateVariableColors (KoCanvasResourcesInterfaceSP canvasResourcesInterface) const
 
virtual void colorAt (KoColor &, qreal t) const
 gets the color at position 0 <= t <= 1
 
const KoColorSpacecolorSpace () const
 
QImage generatePreview (int width, int height) const
 
QImage generatePreview (int width, int height, KoCanvasResourcesInterfaceSP canvasResourcesInterface) const
 
 KoAbstractGradient (const KoAbstractGradient &rhs)
 
 KoAbstractGradient (const QString &filename)
 
void setColorSpace (KoColorSpace *colorSpace)
 
void setSpread (QGradient::Spread spreadMethod)
 
void setType (QGradient::Type repeatType)
 
QGradient::Spread spread () const
 
virtual QGradient * toQGradient () const
 
QGradient::Type type () const
 
void updatePreview ()
 
virtual void updateVariableColors (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
 ~KoAbstractGradient () override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KoResource
bool active () const
 
void addMetaData (QString key, QVariant value)
 store the given key, value pair in the resource
 
virtual void clearSideLoadedResources ()
 
virtual KoResourceSP clone () const =0
 
virtual QString defaultFileExtension () const
 
virtual QList< KoResourceLoadResultembeddedResources (KisResourcesInterfaceSP globalResourcesInterface) const
 
QString filename () const
 
QImage image () const
 
bool isDirty () const
 
virtual bool isEphemeral () const
 
virtual bool isSerializable () const
 
 KoResource ()
 
 KoResource (const KoResource &rhs)
 
 KoResource (const QString &filename)
 
virtual QList< KoResourceLoadResultlinkedResources (KisResourcesInterfaceSP globalResourcesInterface) const
 
bool load (KisResourcesInterfaceSP resourcesInterface)
 
virtual bool loadFromDevice (QIODevice *dev, KisResourcesInterfaceSP resourcesInterface)=0
 
QString md5Sum (bool generateIfEmpty=true) const
 
QMap< QString, QVariant > metadata () const
 get a map with all the metadata
 
virtual QString name () const
 
KoResourceoperator= (const KoResource &rhs)=delete
 
bool permanent () const
 
virtual QList< int > requiredCanvasResources () const
 
QList< KoResourceLoadResultrequiredResources (KisResourcesInterfaceSP globalResourcesInterface) const
 
int resourceId () const
 
virtual QPair< QString, QString > resourceType () const =0
 
bool save ()
 
virtual bool saveToDevice (QIODevice *dev) const
 
void setActive (bool active)
 
void setDirty (bool value)
 Mark the preset as modified but not saved.
 
void setFilename (const QString &filename)
 
void setImage (const QImage &image)
 
void setMD5Sum (const QString &md5sum)
 Set the md5sum of this resource. It must be in hex-encoded string format.
 
void setName (const QString &name)
 
void setPermanent (bool permanent)
 
void setResourceId (int id)
 
void setStorageLocation (const QString &location)
 
void setValid (bool valid)
 
void setVersion (int version)
 
virtual QList< KoResourceLoadResultsideLoadedResources (KisResourcesInterfaceSP globalResourcesInterface) const
 
KoResourceSignature signature () const
 
QString storageLocation () const
 
QList< KoResourceLoadResulttakeSideLoadedResources (KisResourcesInterfaceSP globalResourcesInterface)
 
virtual QImage thumbnail () const
 thumbnail the thumbnail image to use in resource selectors
 
virtual QString thumbnailPath () const
 thumbnailPath returns the path to a separate thumbnail image, outside the actual resource file itself. If the path is relative, it is supposed start in the same location as the resource itself. If it's absolute, that is, it starts with "/", it is from the root of the storage.
 
virtual void updateThumbnail ()
 updateThumbnail updates the thumbnail for this resource. Reimplement if your thumbnail is something else than the image set with setImage.
 
bool valid () const
 
int version () const
 Get the version of the resource.
 
virtual ~KoResource ()
 

Public Attributes

const KoColorSpacecolorSpace
 
QGradient::Spread spread
 
QGradient::Type type
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 
- Public Attributes inherited from KoResource
bool active {true}
 
QString filename
 
QImage image
 
QString md5sum
 
QMap< QString, QVariant > metadata
 
bool modified {false}
 
QString name
 
bool permanent {false}
 
int resourceId {-1}
 
QString storageLocation
 
bool valid {false}
 
int version {-1}
 

Private Attributes

Private *const d
 

Detailed Description

KoAbstractGradient is the base class of all gradient resources

Definition at line 20 of file KoAbstractGradient.cpp.

Constructor & Destructor Documentation

◆ KoAbstractGradient() [1/2]

KoAbstractGradient::KoAbstractGradient ( const QString & filename)
explicit

Definition at line 26 of file KoAbstractGradient.cpp.

28 , d(new Private)
29{
30 d->colorSpace = KoColorSpaceRegistry::instance()->rgb8();
31 d->spread = QGradient::PadSpread;
32 d->type = QGradient::NoGradient;
33}
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())
QString filename

References d, KoColorSpaceRegistry::instance(), and KoColorSpaceRegistry::rgb8().

◆ ~KoAbstractGradient()

KoAbstractGradient::~KoAbstractGradient ( )
override

Definition at line 35 of file KoAbstractGradient.cpp.

36{
37 delete d;
38}

References d.

◆ KoAbstractGradient() [2/2]

KoAbstractGradient::KoAbstractGradient ( const KoAbstractGradient & rhs)

Definition at line 40 of file KoAbstractGradient.cpp.

41 : KoResource(rhs)
42 , d(new Private(*rhs.d))
43{
44}

Member Function Documentation

◆ bakeVariableColors()

void KoAbstractGradient::bakeVariableColors ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)
virtual

Reimplemented in KoSegmentGradient, and KoStopGradient.

Definition at line 55 of file KoAbstractGradient.cpp.

56{
57 Q_UNUSED(canvasResourcesInterface);
58}

◆ cloneAndBakeVariableColors()

KoAbstractGradientSP KoAbstractGradient::cloneAndBakeVariableColors ( KoCanvasResourcesInterfaceSP canvasResourcesInterface) const

Definition at line 46 of file KoAbstractGradient.cpp.

47{
48 KoAbstractGradientSP result = this->clone().dynamicCast<KoAbstractGradient>();
49 if (canvasResourcesInterface) {
50 result->bakeVariableColors(canvasResourcesInterface);
51 }
52 return result;
53}
virtual KoResourceSP clone() const =0

References KoResource::clone().

◆ cloneAndUpdateVariableColors()

KoAbstractGradientSP KoAbstractGradient::cloneAndUpdateVariableColors ( KoCanvasResourcesInterfaceSP canvasResourcesInterface) const

Definition at line 60 of file KoAbstractGradient.cpp.

61{
62 KoAbstractGradientSP result = this->clone().dynamicCast<KoAbstractGradient>();
63 if (canvasResourcesInterface) {
64 result->updateVariableColors(canvasResourcesInterface);
65 }
66 return result;
67}

References KoResource::clone().

◆ colorAt()

void KoAbstractGradient::colorAt ( KoColor & ,
qreal t ) const
virtual

gets the color at position 0 <= t <= 1

Reimplemented in KoStopGradient, KoCachedGradient, and KoSegmentGradient.

Definition at line 74 of file KoAbstractGradient.cpp.

75{
76 Q_UNUSED(t);
77}

◆ colorSpace()

const KoColorSpace * KoAbstractGradient::colorSpace ( ) const

◆ generatePreview() [1/2]

QImage KoAbstractGradient::generatePreview ( int width,
int height ) const

Definition at line 109 of file KoAbstractGradient.cpp.

110{
111 QImage image(width, height, QImage::Format_ARGB32);
112
113 QRgb * firstLine = reinterpret_cast<QRgb*>(image.scanLine(0));
114
115 KoColor c;
116 QColor color;
117 // first create a reference line
118 for (int x = 0; x < image.width(); ++x) {
119
120 qreal t = static_cast<qreal>(x) / (image.width() - 1);
121 colorAt(c, t);
122 c.toQColor(&color);
123
124 firstLine[x] = color.rgba();
125 }
126
127 int bytesPerLine = image.bytesPerLine();
128
129 // now copy lines accordingly
130 for (int y = 1; y < image.height(); ++y) {
131 QRgb * line = reinterpret_cast<QRgb*>(image.scanLine(y));
132
133 memcpy(line, firstLine, bytesPerLine);
134 }
135
136 return image;
137}
void toQColor(QColor *c) const
a convenience method for the above.
Definition KoColor.cpp:198
unsigned int QRgb
virtual void colorAt(KoColor &, qreal t) const
gets the color at position 0 <= t <= 1
QImage image

References colorAt(), KoResource::image, and KoColor::toQColor().

◆ generatePreview() [2/2]

QImage KoAbstractGradient::generatePreview ( int width,
int height,
KoCanvasResourcesInterfaceSP canvasResourcesInterface ) const

Definition at line 139 of file KoAbstractGradient.cpp.

140{
141 QImage result;
142
143 if (!requiredCanvasResources().isEmpty()) {
144 KoAbstractGradientSP gradient = cloneAndBakeVariableColors(canvasResourcesInterface);
145 result = gradient->generatePreview(width, height);
146 } else {
147 result = generatePreview(width, height);
148 }
149
150 return result;
151}
QImage generatePreview(int width, int height) const
KoAbstractGradientSP cloneAndBakeVariableColors(KoCanvasResourcesInterfaceSP canvasResourcesInterface) const
virtual QList< int > requiredCanvasResources() const

References cloneAndBakeVariableColors(), generatePreview(), and KoResource::requiredCanvasResources().

◆ setColorSpace()

void KoAbstractGradient::setColorSpace ( KoColorSpace * colorSpace)

Definition at line 79 of file KoAbstractGradient.cpp.

80{
81 d->colorSpace = colorSpace;
82}
const KoColorSpace * colorSpace

References colorSpace, and d.

◆ setSpread()

void KoAbstractGradient::setSpread ( QGradient::Spread spreadMethod)

Definition at line 89 of file KoAbstractGradient.cpp.

90{
91 d->spread = spreadMethod;
92}

References d.

◆ setType()

void KoAbstractGradient::setType ( QGradient::Type repeatType)

Definition at line 99 of file KoAbstractGradient.cpp.

100{
101 d->type = repeatType;
102}

References d.

◆ spread()

QGradient::Spread KoAbstractGradient::spread ( ) const

◆ toQGradient()

virtual QGradient * KoAbstractGradient::toQGradient ( ) const
inlinevirtual

Creates a QGradient from the gradient. The resulting QGradient might differ from original gradient

Reimplemented in KoCachedGradient, KoSegmentGradient, and KoStopGradient.

Definition at line 37 of file KoAbstractGradient.h.

37 {
38 return new QGradient();
39 }

◆ type()

QGradient::Type KoAbstractGradient::type ( ) const

◆ updatePreview()

void KoAbstractGradient::updatePreview ( )

Definition at line 153 of file KoAbstractGradient.cpp.

154{
156}
#define PREVIEW_HEIGHT
#define PREVIEW_WIDTH
void setImage(const QImage &image)

References generatePreview(), PREVIEW_HEIGHT, PREVIEW_WIDTH, and KoResource::setImage().

◆ updateVariableColors()

void KoAbstractGradient::updateVariableColors ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)
virtual

Reimplemented in KoSegmentGradient, and KoStopGradient.

Definition at line 69 of file KoAbstractGradient.cpp.

70{
71 Q_UNUSED(canvasResourcesInterface);
72}

Member Data Documentation

◆ colorSpace

const KoColorSpace * KoAbstractGradient::colorSpace

Definition at line 21 of file KoAbstractGradient.cpp.

◆ d

Private* const KoAbstractGradient::d
private

Definition at line 68 of file KoAbstractGradient.h.

◆ spread

QGradient::Spread KoAbstractGradient::spread

Definition at line 22 of file KoAbstractGradient.cpp.

◆ type

QGradient::Type KoAbstractGradient::type

Definition at line 23 of file KoAbstractGradient.cpp.


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