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

#include <kis_svg_brush.h>

+ Inheritance diagram for KisSvgBrush:

Public Member Functions

KoResourceSP clone () const override
 
QString defaultFileExtension () const override
 
 KisSvgBrush (const KisSvgBrush &rhs)
 
 KisSvgBrush (const QString &filename)
 Construct brush to load filename later as brush.
 
bool loadFromDevice (QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override
 
KisSvgBrushoperator= (const KisSvgBrush &rhs)=delete
 
QPair< QString, QString > resourceType () const override
 
bool saveToDevice (QIODevice *dev) const override
 
void toXML (QDomDocument &d, QDomElement &e) const override
 
- Public Member Functions inherited from KisScalingSizeBrush
 KisScalingSizeBrush ()
 
 KisScalingSizeBrush (const KisScalingSizeBrush &rhs)
 
 KisScalingSizeBrush (const QString &filename)
 
void setUserEffectiveSize (qreal value) override
 
qreal userEffectiveSize () const override
 
- Public Member Functions inherited from KisBrush
qreal angle () const
 
virtual bool applyingGradient () const
 
bool autoSpacingActive () const
 
qreal autoSpacingCoeff () const
 
virtual enumBrushApplication brushApplication () const
 
virtual quint32 brushIndex () const
 
virtual QImage brushTipImage () const
 brushImage the image the brush tip can paint with. Not all brush types have a single image.
 
virtual enumBrushType brushType () const
 
virtual bool canPaintFor (const KisPaintInformation &)
 
virtual QSizeF characteristicSize (KisDabShape const &) const
 
void clearBrushPyramid ()
 
virtual void coldInitBrush ()
 
virtual void generateMaskAndApplyMaskOrCreateDab (KisFixedPaintDeviceSP dst, ColoringInformation *coloringInfo, KisDabShape const &, const KisPaintInformation &info, double subPixelX, double subPixelY, qreal softnessFactor, qreal lightnessStrength) const
 
void generateMaskAndApplyMaskOrCreateDab (KisFixedPaintDeviceSP dst, ColoringInformation *coloringInfo, KisDabShape const &, const KisPaintInformation &info, double subPixelX=0, double subPixelY=0, qreal softnessFactor=DEFAULT_SOFTNESS_FACTOR) const
 
qint32 height () const
 
QPointF hotSpot (KisDabShape const &, const KisPaintInformation &info) const
 
virtual bool isPiercedApprox () const
 
 KisBrush ()
 
 KisBrush (const KisBrush &rhs)
 
 KisBrush (const QString &filename)
 
virtual void lodLimitations (KisPaintopLodLimitations *l) const
 
void mask (KisFixedPaintDeviceSP dst, const KisPaintDeviceSP src, KisDabShape const &shape, const KisPaintInformation &info, double subPixelX=0, double subPixelY=0, qreal softnessFactor=DEFAULT_SOFTNESS_FACTOR, qreal lightnessStrength=DEFAULT_LIGHTNESS_STRENGTH) const
 
void mask (KisFixedPaintDeviceSP dst, const KoColor &color, KisDabShape const &shape, const KisPaintInformation &info, double subPixelX=0, double subPixelY=0, qreal softnessFactor=DEFAULT_SOFTNESS_FACTOR, qreal lightnessStrength=DEFAULT_LIGHTNESS_STRENGTH) const
 
double maskAngle (double angle=0) const
 
virtual qint32 maskHeight (KisDabShape const &, qreal subPixelX, qreal subPixelY, const KisPaintInformation &info) const
 
virtual qint32 maskWidth (KisDabShape const &, qreal subPixelX, qreal subPixelY, const KisPaintInformation &info) const
 
virtual void notifyBrushIsGoingToBeClonedForStroke ()
 
virtual void notifyStrokeStarted ()
 
KisBrushoperator= (const KisBrush &rhs)=delete
 
virtual KisOptimizedBrushOutline outline (bool forcePreciseOutline=false) const
 
virtual KisFixedPaintDeviceSP outlineSourceImage () const
 
virtual KisFixedPaintDeviceSP paintDevice (const KoColorSpace *colorSpace, KisDabShape const &, const KisPaintInformation &info, double subPixelX=0, double subPixelY=0) const
 
virtual void prepareForSeqNo (const KisPaintInformation &info, int seqNo)
 
virtual bool preserveLightness () const
 
qreal scale () const
 
virtual void setAngle (qreal _angle)
 
void setAutoSpacing (bool active, qreal coeff)
 
virtual void setBrushApplication (enumBrushApplication brushApplication)
 
virtual void setBrushTipImage (const QImage &image)
 
virtual void setGradient (KoAbstractGradientSP gradient)
 
virtual void setScale (qreal _scale)
 
virtual void setSpacing (double spacing)
 
double spacing () const
 
virtual bool supportsCaching () const
 
qint32 width () const
 
 ~KisBrush () override
 
- 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 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)
 
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
 
bool save ()
 
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 Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Private Attributes

QByteArray m_svg
 

Additional Inherited Members

- Static Public Member Functions inherited from KisBrush
static KisBrushSP fromXML (const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)
 
static KoResourceLoadResult fromXMLLoadResult (const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)
 
- 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}
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 
- Static Public Attributes inherited from KisBrush
static const QString brushTypeMetaDataKey = "image-based-brush"
 
- Protected Member Functions inherited from KisBrush
void generateOutlineCache ()
 
bool outlineCacheIsValid () const
 
void predefinedBrushToXML (const QString &type, QDomElement &e) const
 
void resetOutlineCache ()
 
virtual void setBrushType (enumBrushType type)
 
void setHeight (qint32 height)
 
void setHotSpot (QPointF)
 
void setWidth (qint32 width)
 

Detailed Description

Definition at line 12 of file kis_svg_brush.h.

Constructor & Destructor Documentation

◆ KisSvgBrush() [1/2]

KisSvgBrush::KisSvgBrush ( const QString & filename)

Construct brush to load filename later as brush.

Definition at line 15 of file kis_svg_brush.cpp.

17{
19 setSpacing(0.25);
20}
virtual void setSpacing(double spacing)
virtual void setBrushType(enumBrushType type)
@ INVALID
Definition kis_brush.h:31
QString filename

References INVALID, KisBrush::setBrushType(), and KisBrush::setSpacing().

◆ KisSvgBrush() [2/2]

KisSvgBrush::KisSvgBrush ( const KisSvgBrush & rhs)

Definition at line 22 of file kis_svg_brush.cpp.

24 , m_svg(rhs.m_svg)
25{
26}
QByteArray m_svg

Member Function Documentation

◆ clone()

KoResourceSP KisSvgBrush::clone ( ) const
overridevirtual

Implements KoResource.

Definition at line 28 of file kis_svg_brush.cpp.

29{
30 return KoResourceSP(new KisSvgBrush(*this));
31}
KisSvgBrush(const QString &filename)
Construct brush to load filename later as brush.
QSharedPointer< KoResource > KoResourceSP

References KisSvgBrush().

◆ defaultFileExtension()

QString KisSvgBrush::defaultFileExtension ( ) const
overridevirtual
Returns
the default file extension which should be used when saving the resource

Reimplemented from KoResource.

Definition at line 75 of file kis_svg_brush.cpp.

76{
77 return QString(".svg");
78}

◆ loadFromDevice()

bool KisSvgBrush::loadFromDevice ( QIODevice * dev,
KisResourcesInterfaceSP resourcesInterface )
overridevirtual

Implements KoResource.

Definition at line 33 of file kis_svg_brush.cpp.

34{
35 Q_UNUSED(resourcesInterface);
36
37 m_svg = dev->readAll();
38
39 QSvgRenderer renderer(m_svg);
40
41 QRect box = renderer.viewBox();
42 if (box.isEmpty()) return false;
43
44 QImage image_(1000, (1000 * box.height()) / box.width(), QImage::Format_ARGB32);
45 {
46 QPainter p(&image_);
47 p.fillRect(0, 0, image_.width(), image_.height(), Qt::white);
48 renderer.render(&p);
49 }
50
51 QVector<QRgb> table;
52 for (int i = 0; i < 256; ++i) table.push_back(qRgb(i, i, i));
53 image_ = image_.convertToFormat(QImage::Format_Indexed8, table);
54
55 setBrushTipImage(image_);
56
57 setValid(true);
58
60
63
64 QFileInfo fi(filename());
65 setName(fi.completeBaseName());
66
67 return !brushTipImage().isNull() && valid();
68}
const Params2D p
qint32 width() const
virtual QImage brushTipImage() const
brushImage the image the brush tip can paint with. Not all brush types have a single image.
virtual void setBrushTipImage(const QImage &image)
void setWidth(qint32 width)
qint32 height() const
void setHeight(qint32 height)
@ MASK
Definition kis_brush.h:32
void setValid(bool valid)
void setName(const QString &name)

References KisBrush::brushTipImage(), KoResource::filename, KisBrush::height(), m_svg, MASK, p, KisBrush::setBrushTipImage(), KisBrush::setBrushType(), KisBrush::setHeight(), KoResource::setName(), KoResource::setValid(), KisBrush::setWidth(), KoResource::valid, and KisBrush::width().

◆ operator=()

KisSvgBrush & KisSvgBrush::operator= ( const KisSvgBrush & rhs)
delete

◆ resourceType()

QPair< QString, QString > KisSvgBrush::resourceType ( ) const
inlineoverridevirtual
Returns
the resource type

Reimplemented from KisBrush.

Definition at line 25 of file kis_svg_brush.h.

25 {
26 return QPair<QString, QString>(ResourceType::Brushes, ResourceSubType::SvgBrushes);
27 }
const QString SvgBrushes
const QString Brushes

References ResourceType::Brushes, and ResourceSubType::SvgBrushes.

◆ saveToDevice()

bool KisSvgBrush::saveToDevice ( QIODevice * dev) const
overridevirtual

Reimplemented from KoResource.

Definition at line 70 of file kis_svg_brush.cpp.

71{
72 return dev->write(m_svg.constData(), m_svg.size()) == m_svg.size();
73}

References m_svg.

◆ toXML()

void KisSvgBrush::toXML ( QDomDocument & ,
QDomElement & element ) const
overridevirtual

Serialize this brush to XML.

Reimplemented from KisBrush.

Definition at line 80 of file kis_svg_brush.cpp.

81{
82 predefinedBrushToXML("svg_brush", e);
84}
void predefinedBrushToXML(const QString &type, QDomElement &e) const
Private *const d
Definition kis_brush.h:387
virtual void toXML(QDomDocument &, QDomElement &) const

References KisBrush::d, KisBrush::predefinedBrushToXML(), and KisBrush::toXML().

Member Data Documentation

◆ m_svg

QByteArray KisSvgBrush::m_svg
private

Definition at line 32 of file kis_svg_brush.h.


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