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

#include <KisAslStorage.h>

+ Inheritance diagram for KisAslStorage:

Public Member Functions

bool addResource (const QString &resourceType, KoResourceSP resource) override
 
bool isValid () const override
 
 KisAslStorage (const QString &location)
 
bool loadVersionedResource (KoResourceSP resource) override
 
KoResourceSP resource (const QString &url) override
 
KisResourceStorage::ResourceItem resourceItem (const QString &url) override
 
QSharedPointer< KisResourceStorage::ResourceIteratorresources (const QString &resourceType) override
 
bool saveAsNewVersion (const QString &resourceType, KoResourceSP resource) override
 
bool supportsVersioning () const override
 
QSharedPointer< KisResourceStorage::TagIteratortags (const QString &resourceType) override
 
virtual ~KisAslStorage ()
 
- Public Member Functions inherited from KisStoragePlugin
virtual bool exportResource (const QString &url, QIODevice *device)
 
virtual bool importResource (const QString &url, QIODevice *device)
 
 KisStoragePlugin (const QString &location)
 
virtual QVariant metaData (const QString &key) const
 
virtual QStringList metaDataKeys () const
 
virtual QString resourceFilePath (const QString &url)
 
virtual QString resourceMd5 (const QString &url)
 
virtual void setMetaData (const QString &key, const QVariant &value)
 
virtual QImage thumbnail () const
 
QDateTime timestamp ()
 
virtual ~KisStoragePlugin ()
 

Public Attributes

QSharedPointer< KisAslLayerStyleSerializerm_aslSerializer
 

Additional Inherited Members

- Protected Member Functions inherited from KisStoragePlugin
QString location () const
 
void sanitizeResourceFileNameCase (KoResourceSP resource, const QDir &parentDir)
 

Detailed Description

Definition at line 15 of file KisAslStorage.h.

Constructor & Destructor Documentation

◆ KisAslStorage()

KisAslStorage::KisAslStorage ( const QString & location)

Definition at line 139 of file KisAslStorage.cpp.

142{
143}
QSharedPointer< KisAslLayerStyleSerializer > m_aslSerializer
QString location() const
KisStoragePlugin(const QString &location)

◆ ~KisAslStorage()

KisAslStorage::~KisAslStorage ( )
virtual

Definition at line 145 of file KisAslStorage.cpp.

146{
147
148}

Member Function Documentation

◆ addResource()

bool KisAslStorage::addResource ( const QString & resourceType,
KoResourceSP resource )
overridevirtual

Reimplemented from KisStoragePlugin.

Definition at line 233 of file KisAslStorage.cpp.

234{
235 if (!resource) {
236 warnKrita << "Trying to add a null resource to KisAslStorage";
237 return false;
238 }
239 KisPSDLayerStyleSP layerStyle = resource.dynamicCast<KisPSDLayerStyle>();
240 if (!layerStyle) {
241 warnKrita << "Trying to add a resource that is not a layer style to KisAslStorage";
242 return false;
243 }
244
246 styles << layerStyle;
247 m_aslSerializer->setStyles(styles);
248 return m_aslSerializer->saveToFile(location());
249}
KoResourceSP resource(const QString &url) override
#define warnKrita
Definition kis_debug.h:87
The KisPSDLayerStyle class implements loading, saving and applying the PSD layer effects.

References KisStoragePlugin::location(), m_aslSerializer, resource(), and warnKrita.

◆ isValid()

bool KisAslStorage::isValid ( ) const
overridevirtual

Reimplemented from KisStoragePlugin.

Definition at line 251 of file KisAslStorage.cpp.

252{
253 if (!m_aslSerializer->isInitialized()) {
254 m_aslSerializer->readFromFile(location());
255 }
256 return m_aslSerializer->isValid();
257}

References KisStoragePlugin::location(), and m_aslSerializer.

◆ loadVersionedResource()

bool KisAslStorage::loadVersionedResource ( KoResourceSP resource)
overridevirtual

Implements KisStoragePlugin.

Definition at line 206 of file KisAslStorage.cpp.

207{
208 return false;
209}

◆ resource()

KoResourceSP KisAslStorage::resource ( const QString & url)
overridevirtual

Retrieve the given resource. The url is the unique identifier of the resource, for instance resourcetype plus filename.

Reimplemented from KisStoragePlugin.

Definition at line 160 of file KisAslStorage.cpp.

161{
162 if (!m_aslSerializer->isInitialized()) {
163 m_aslSerializer->readFromFile(location());
164 }
165 int indexOfUnderscore = url.lastIndexOf("_");
166 QString realUuid = url;
167 if (indexOfUnderscore >= 0) {
168 realUuid.remove(indexOfUnderscore, url.length() - indexOfUnderscore); // remove _pattern or _style added in iterator
169 }
170 // TODO: RESOURCES: Since we do get a resource type at the beginning of the path now
171 // maybe we could skip adding the _[resourcetype] at the end of the path as well?
172 realUuid = QFileInfo(realUuid).baseName(); // remove patterns/ at the beginning, if there are any
173
174 if (url.contains("pattern") || url.contains(".pat")) {
175 QHash<QString, KoPatternSP> patterns = m_aslSerializer->patterns();
176
177 if (patterns.contains(realUuid)) {
178 return patterns[realUuid];
179 }
180 }
181 else {
182 QHash<QString, KisPSDLayerStyleSP> styles = m_aslSerializer->stylesHash();
183 if (styles.contains(realUuid)) {
184 return styles[realUuid];
185 } else {
186 // can be {realUuid} or {realUuid}
187 if (realUuid.startsWith("{")) {
188 realUuid = realUuid.right(realUuid.length() - 1);
189 }
190 if (realUuid.endsWith("}")) {
191 realUuid = realUuid.left(realUuid.length() - 1);
192 }
193
194 if (styles.contains(realUuid)) {
195 return styles[realUuid];
196 } else {
197 Q_FOREACH(QString ke, styles.keys()) {
198 }
199 }
200
201 }
202 }
203 return 0;
204}

References KisStoragePlugin::location(), and m_aslSerializer.

◆ resourceItem()

◆ resources()

QSharedPointer< KisResourceStorage::ResourceIterator > KisAslStorage::resources ( const QString & resourceType)
overridevirtual

◆ saveAsNewVersion()

bool KisAslStorage::saveAsNewVersion ( const QString & resourceType,
KoResourceSP resource )
overridevirtual

Reimplemented from KisStoragePlugin.

Definition at line 226 of file KisAslStorage.cpp.

227{
228 // not implemented yet
229 warnKrita << "KisAslStorage::saveAsNewVersion is not implemented yet";
230 return false;
231}

References warnKrita.

◆ supportsVersioning()

bool KisAslStorage::supportsVersioning ( ) const
overridevirtual

Reimplemented from KisStoragePlugin.

Definition at line 211 of file KisAslStorage.cpp.

212{
213 return false;
214}

◆ tags()

QSharedPointer< KisResourceStorage::TagIterator > KisAslStorage::tags ( const QString & resourceType)
overridevirtual

Implements KisStoragePlugin.

Definition at line 221 of file KisAslStorage.cpp.

References KisStoragePlugin::location().

Member Data Documentation

◆ m_aslSerializer

QSharedPointer<KisAslLayerStyleSerializer> KisAslStorage::m_aslSerializer

Definition at line 33 of file KisAslStorage.h.


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