Krita Source Code Documentation
Loading...
Searching...
No Matches
AslIterator Class Reference
+ Inheritance diagram for AslIterator:

Public Member Functions

 AslIterator (QSharedPointer< KisAslLayerStyleSerializer > aslSerializer, const QString &filename, const QString &resourceType)
 
bool hasNext () const override
 
QDateTime lastModified () const override
 
void next () override
 The iterator is only valid if next() has been called at least once.
 
KoResourceSP resourceImpl () const override
 This only loads the resource when called (but not in case of asl...)
 
QString type () const override
 
QString url () const override
 
- Public Member Functions inherited from KisResourceStorage::ResourceIterator
virtual int guessedVersion () const
 
KoResourceSP resource () const
 
virtual QSharedPointer< KisResourceStorage::ResourceIteratorversions () const
 
virtual ~ResourceIterator ()
 

Private Attributes

QSharedPointer< KisAslLayerStyleSerializerm_aslSerializer
 
KoResourceSP m_currentResource
 
QString m_currentType
 
QString m_currentUuid
 
QString m_filename
 
bool m_isLoaded
 
QHash< QString, KoPatternSPm_patterns
 
QScopedPointer< QHashIterator< QString, KoPatternSP > > m_patternsIterator
 
QString m_resourceType
 
QVector< KisPSDLayerStyleSPm_styles
 
QScopedPointer< QVectorIterator< KisPSDLayerStyleSP > > m_stylesIterator
 

Additional Inherited Members

Detailed Description

Definition at line 39 of file KisAslStorage.cpp.

Constructor & Destructor Documentation

◆ AslIterator()

AslIterator::AslIterator ( QSharedPointer< KisAslLayerStyleSerializer > aslSerializer,
const QString & filename,
const QString & resourceType )
inline

Definition at line 58 of file KisAslStorage.cpp.

59 : m_filename(filename)
60 , m_aslSerializer(aslSerializer)
61 , m_isLoaded(false)
62 , m_resourceType(resourceType)
63 {
64 }
QSharedPointer< KisAslLayerStyleSerializer > m_aslSerializer
QString m_resourceType
QString m_filename

Member Function Documentation

◆ hasNext()

bool AslIterator::hasNext ( ) const
inlineoverridevirtual

Implements KisResourceStorage::ResourceIterator.

Definition at line 66 of file KisAslStorage.cpp.

67 {
69 if (!m_aslSerializer->isInitialized()) {
70 m_aslSerializer->readFromFile(m_filename);
71 }
72
73 const_cast<AslIterator*>(this)->m_isLoaded = true;
74 const_cast<AslIterator*>(this)->m_patterns = m_aslSerializer->patterns();
75 const_cast<AslIterator*>(this)->m_styles = m_aslSerializer->styles();
76
77 const_cast<AslIterator*>(this)->m_patternsIterator.reset(new QHashIterator<QString, KoPatternSP>(m_patterns));
78 const_cast<AslIterator*>(this)->m_stylesIterator.reset(new QVectorIterator<KisPSDLayerStyleSP>(m_styles));
79 }
80 if (!m_aslSerializer->isValid()) {
81 return false;
82 }
83
87 return m_stylesIterator->hasNext();
88 }
89 return false;
90 }
QVector< KisPSDLayerStyleSP > m_styles
QScopedPointer< QHashIterator< QString, KoPatternSP > > m_patternsIterator
QHash< QString, KoPatternSP > m_patterns
QScopedPointer< QVectorIterator< KisPSDLayerStyleSP > > m_stylesIterator
bool hasNext() const override
const QString LayerStyles
const QString Patterns

References hasNext(), ResourceType::LayerStyles, m_aslSerializer, m_filename, m_isLoaded, m_patterns, m_patternsIterator, m_resourceType, m_styles, m_stylesIterator, and ResourceType::Patterns.

◆ lastModified()

QDateTime AslIterator::lastModified ( ) const
inlineoverridevirtual

Implements KisResourceStorage::ResourceIterator.

Definition at line 126 of file KisAslStorage.cpp.

126 {
127 QFileInfo fi(m_filename);
128 return fi.lastModified();
129 }

References m_filename.

◆ next()

void AslIterator::next ( )
inlineoverridevirtual

The iterator is only valid if next() has been called at least once.

Implements KisResourceStorage::ResourceIterator.

Definition at line 91 of file KisAslStorage.cpp.

92 {
94 if (m_patternsIterator->hasNext()) {
96 m_patternsIterator->next();
97 KoPatternSP currentPattern = m_patternsIterator->value();
98 m_currentResource = currentPattern;
99 KIS_ASSERT(currentPattern);
100 m_currentUuid = currentPattern->filename();
101 }
103 if (m_stylesIterator->hasNext()) {
105 KisPSDLayerStyleSP currentLayerStyle = m_stylesIterator->next();
106 m_currentResource = currentLayerStyle;
107 KIS_ASSERT(currentLayerStyle);
108 m_currentUuid = currentLayerStyle->filename();
109 }
110 }
111 }
QString m_currentType
KoResourceSP m_currentResource
QString m_currentUuid
#define KIS_ASSERT(cond)
Definition kis_assert.h:33

References KIS_ASSERT, ResourceType::LayerStyles, m_currentResource, m_currentType, m_currentUuid, m_patternsIterator, m_resourceType, m_stylesIterator, and ResourceType::Patterns.

◆ resourceImpl()

KoResourceSP AslIterator::resourceImpl ( ) const
inlineoverridevirtual

This only loads the resource when called (but not in case of asl...)

Implements KisResourceStorage::ResourceIterator.

Definition at line 133 of file KisAslStorage.cpp.

134 {
135 return m_currentResource;
136 }

References m_currentResource.

◆ type()

QString AslIterator::type ( ) const
inlineoverridevirtual

Implements KisResourceStorage::ResourceIterator.

Definition at line 121 of file KisAslStorage.cpp.

122 {
123 return m_currentResource.isNull() ? QString() : m_currentType;
124 }

References m_currentResource, and m_currentType.

◆ url()

QString AslIterator::url ( ) const
inlineoverridevirtual

Implements KisResourceStorage::ResourceIterator.

Definition at line 113 of file KisAslStorage.cpp.

114 {
115 if (m_currentResource.isNull()) {
116 return QString();
117 }
118 return m_currentUuid;
119 }

References m_currentResource, and m_currentUuid.

Member Data Documentation

◆ m_aslSerializer

QSharedPointer<KisAslLayerStyleSerializer> AslIterator::m_aslSerializer
private

Definition at line 45 of file KisAslStorage.cpp.

◆ m_currentResource

KoResourceSP AslIterator::m_currentResource
private

Definition at line 52 of file KisAslStorage.cpp.

◆ m_currentType

QString AslIterator::m_currentType
private

Definition at line 51 of file KisAslStorage.cpp.

◆ m_currentUuid

QString AslIterator::m_currentUuid
private

Definition at line 53 of file KisAslStorage.cpp.

◆ m_filename

QString AslIterator::m_filename
private

Definition at line 44 of file KisAslStorage.cpp.

◆ m_isLoaded

bool AslIterator::m_isLoaded
private

Definition at line 46 of file KisAslStorage.cpp.

◆ m_patterns

QHash<QString, KoPatternSP> AslIterator::m_patterns
private

Definition at line 47 of file KisAslStorage.cpp.

◆ m_patternsIterator

QScopedPointer<QHashIterator<QString, KoPatternSP> > AslIterator::m_patternsIterator
private

Definition at line 49 of file KisAslStorage.cpp.

◆ m_resourceType

QString AslIterator::m_resourceType
private

Definition at line 54 of file KisAslStorage.cpp.

◆ m_styles

QVector<KisPSDLayerStyleSP> AslIterator::m_styles
private

Definition at line 48 of file KisAslStorage.cpp.

◆ m_stylesIterator

QScopedPointer<QVectorIterator<KisPSDLayerStyleSP> > AslIterator::m_stylesIterator
private

Definition at line 50 of file KisAslStorage.cpp.


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