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

#include <KoSvgSymbolCollectionResource.h>

+ Inheritance diagram for KoSvgSymbolCollectionResource:

Classes

struct  Private
 

Public Member Functions

KoResourceSP clone () const override
 
QString creator () const
 
QString defaultFileExtension () const override
 
QString description () const
 
 KoSvgSymbolCollectionResource ()
 Create an empty color set.
 
 KoSvgSymbolCollectionResource (const KoSvgSymbolCollectionResource &rhs)
 
 KoSvgSymbolCollectionResource (const QString &filename)
 
QString language () const
 
QString license () const
 
bool loadFromDevice (QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override
 
KoSvgSymbolCollectionResourceoperator= (const KoSvgSymbolCollectionResource &rhs)=delete
 
QStringList permits () const
 
QPair< QString, QString > resourceType () const override
 
QString rights () const
 
bool saveToDevice (QIODevice *dev) const override
 
QStringList subjects () const
 
QVector< KoSvgSymbol * > symbols () const
 
QString title () const
 
 ~KoSvgSymbolCollectionResource () 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

const QScopedPointer< Privated
 

Additional Inherited Members

- 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
 

Detailed Description

Loads an svg file that contains "symbol" objects and creates a collection of those objects.

Definition at line 56 of file KoSvgSymbolCollectionResource.h.

Constructor & Destructor Documentation

◆ KoSvgSymbolCollectionResource() [1/3]

KoSvgSymbolCollectionResource::KoSvgSymbolCollectionResource ( const QString & filename)
explicit

Definition at line 78 of file KoSvgSymbolCollectionResource.cpp.

80 , d(new Private())
81{
82}
const QScopedPointer< Private > d
QString filename

◆ KoSvgSymbolCollectionResource() [2/3]

KoSvgSymbolCollectionResource::KoSvgSymbolCollectionResource ( )

Create an empty color set.

Definition at line 84 of file KoSvgSymbolCollectionResource.cpp.

85 : KoResource(QString())
86 , d(new Private())
87{
88}

◆ ~KoSvgSymbolCollectionResource()

KoSvgSymbolCollectionResource::~KoSvgSymbolCollectionResource ( )
override

Definition at line 108 of file KoSvgSymbolCollectionResource.cpp.

109{
110 qDeleteAll(d->symbols);
111}

References d.

◆ KoSvgSymbolCollectionResource() [3/3]

KoSvgSymbolCollectionResource::KoSvgSymbolCollectionResource ( const KoSvgSymbolCollectionResource & rhs)

Definition at line 90 of file KoSvgSymbolCollectionResource.cpp.

91 : KoResource(QString())
92 , d(new Private(*rhs.d))
93{
94 setFilename(rhs.filename());
95
96 Q_FOREACH(KoSvgSymbol *symbol, rhs.d->symbols) {
97 d->symbols << new KoSvgSymbol(*symbol);
98 }
99
100 setValid(true);
101}
void setValid(bool valid)
void setFilename(const QString &filename)

References d, KoResource::filename, KoResource::setFilename(), and KoResource::setValid().

Member Function Documentation

◆ clone()

KoResourceSP KoSvgSymbolCollectionResource::clone ( ) const
overridevirtual

Implements KoResource.

Definition at line 103 of file KoSvgSymbolCollectionResource.cpp.

104{
106}
KoSvgSymbolCollectionResource()
Create an empty color set.
QSharedPointer< KoResource > KoResourceSP

References KoSvgSymbolCollectionResource().

◆ creator()

QString KoSvgSymbolCollectionResource::creator ( ) const

Definition at line 194 of file KoSvgSymbolCollectionResource.cpp.

195{
196 return "";
197}

◆ defaultFileExtension()

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

Reimplemented from KoResource.

Definition at line 179 of file KoSvgSymbolCollectionResource.cpp.

180{
181 return QString(".svg");
182}

◆ description()

QString KoSvgSymbolCollectionResource::description ( ) const

Definition at line 189 of file KoSvgSymbolCollectionResource.cpp.

190{
191 return d->description;
192}

References d.

◆ language()

QString KoSvgSymbolCollectionResource::language ( ) const

Definition at line 204 of file KoSvgSymbolCollectionResource.cpp.

205{
206 return "";
207}

◆ license()

QString KoSvgSymbolCollectionResource::license ( ) const

Definition at line 214 of file KoSvgSymbolCollectionResource.cpp.

215{
216 return "";
217}

◆ loadFromDevice()

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

Implements KoResource.

Definition at line 113 of file KoSvgSymbolCollectionResource.cpp.

114{
115 Q_UNUSED(resourcesInterface);
116
117 if (!dev->isOpen()) {
118 dev->open(QIODevice::ReadOnly);
119 }
120
121 d->data = dev->readAll();
123
124 dev->seek(0);
125
126 QString errorMsg;
127 int errorLine = 0;
128 int errorColumn;
129
130 QDomDocument doc = SvgParser::createDocumentFromSvg(dev, &errorMsg, &errorLine, &errorColumn);
131 if (doc.isNull()) {
132
133 errKrita << "Parsing error in " << filename() << "! Aborting!" << Qt::endl
134 << " In line: " << errorLine << ", column: " << errorColumn << Qt::endl
135 << " Error message: " << errorMsg << Qt::endl;
136 errKrita << i18n("Parsing error in the main document at line %1, column %2\nError message: %3"
137 , errorLine , errorColumn , errorMsg);
138 return false;
139 }
140
142 SvgParser parser(&manager);
143 parser.setResolution(QRectF(0,0,100,100), 72); // initialize with default values
144 QSizeF fragmentSize;
145 // We're not interested in the shapes themselves
146 qDeleteAll(parser.parseSvg(doc.documentElement(), &fragmentSize));
147 d->symbols = parser.takeSymbols();
148// debugFlake << "Loaded" << filename() << "\n\t"
149// << "Title" << parser.documentTitle() << "\n\t"
150// << "Description" << parser.documentDescription()
151// << "\n\tgot" << d->symbols.size() << ResourceType::Symbols
152// << d->symbols[0]->shape->outlineRect()
153// << d->symbols[0]->shape->size();
154
155 d->title = parser.documentTitle();
156 if (d->title.isEmpty()) {
157 d->title = filename();
158 }
159 setName(d->title);
160 d->description = parser.documentDescription();
161
162 if (d->symbols.size() < 1) {
163 setValid(false);
164 return false;
165 }
166 setValid(true);
167 setImage(d->symbols[0]->icon(256));
168 return true;
169}
static QString generateHash(const QString &filename)
generateHash reads the given file and generates a hex-encoded md5sum for the file.
static QDomDocument createDocumentFromSvg(QIODevice *device, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0)
#define errKrita
Definition kis_debug.h:107
void setName(const QString &name)
void setMD5Sum(const QString &md5sum)
Set the md5sum of this resource. It must be in hex-encoded string format.
void setImage(const QImage &image)

References SvgParser::createDocumentFromSvg(), d, SvgParser::documentDescription(), SvgParser::documentTitle(), errKrita, KoResource::filename, KoMD5Generator::generateHash(), SvgParser::parseSvg(), KoResource::setImage(), KoResource::setMD5Sum(), KoResource::setName(), SvgParser::setResolution(), KoResource::setValid(), and SvgParser::takeSymbols().

◆ operator=()

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

◆ permits()

QStringList KoSvgSymbolCollectionResource::permits ( ) const

Definition at line 219 of file KoSvgSymbolCollectionResource.cpp.

220{
221 return QStringList();
222}
QList< QString > QStringList

◆ resourceType()

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

Implements KoResource.

Definition at line 77 of file KoSvgSymbolCollectionResource.h.

78 {
79 return QPair<QString, QString>(ResourceType::Symbols, "");
80 }
const QString Symbols

References ResourceType::Symbols.

◆ rights()

QString KoSvgSymbolCollectionResource::rights ( ) const

Definition at line 199 of file KoSvgSymbolCollectionResource.cpp.

200{
201 return "";
202}

◆ saveToDevice()

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

Reimplemented from KoResource.

Definition at line 171 of file KoSvgSymbolCollectionResource.cpp.

172{
173 dev->open(QIODevice::WriteOnly);
174 dev->write(d->data);
175 dev->close();
176 return true;
177}

References d.

◆ subjects()

QStringList KoSvgSymbolCollectionResource::subjects ( ) const

Definition at line 209 of file KoSvgSymbolCollectionResource.cpp.

210{
211 return QStringList();
212}

◆ symbols()

QVector< KoSvgSymbol * > KoSvgSymbolCollectionResource::symbols ( ) const

Definition at line 224 of file KoSvgSymbolCollectionResource.cpp.

225{
226 return d->symbols;
227}

References d.

◆ title()

QString KoSvgSymbolCollectionResource::title ( ) const

Definition at line 184 of file KoSvgSymbolCollectionResource.cpp.

185{
186 return d->title;
187}

References d.

Member Data Documentation

◆ d

const QScopedPointer<Private> KoSvgSymbolCollectionResource::d
private

Definition at line 97 of file KoSvgSymbolCollectionResource.h.


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