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

Public Member Functions

 FolderTagIterator (const QString &location, const QString &resourceType)
 
bool hasNext () const override
 
void next () override
 The iterator is only valid if next() has been called at least once.
 
KisTagSP tag () const override
 A tag object on which we can set properties and which we can save.
 
- Public Member Functions inherited from KisResourceStorage::TagIterator
virtual ~TagIterator ()
 

Private Member Functions

bool load (KisTagSP tag) const
 

Private Attributes

QScopedPointer< QDirIterator > m_dirIterator
 
QString m_location
 
QString m_resourceType
 
KisTagSP m_tag
 

Detailed Description

Definition at line 19 of file KisFolderStorage.cpp.

Constructor & Destructor Documentation

◆ FolderTagIterator()

FolderTagIterator::FolderTagIterator ( const QString & location,
const QString & resourceType )
inline

Definition at line 23 of file KisFolderStorage.cpp.

24 : m_location(location)
25 , m_resourceType(resourceType)
26 {
27 m_dirIterator.reset(new QDirIterator(location + '/' + resourceType,
28 QStringList() << "*.tag",
29 QDir::Files | QDir::Readable,
30 QDirIterator::Subdirectories));
31 }
QList< QString > QStringList
QScopedPointer< QDirIterator > m_dirIterator

References m_dirIterator.

Member Function Documentation

◆ hasNext()

bool FolderTagIterator::hasNext ( ) const
inlineoverridevirtual

Implements KisResourceStorage::TagIterator.

Definition at line 33 of file KisFolderStorage.cpp.

34 {
35 return m_dirIterator->hasNext();
36 }

References m_dirIterator.

◆ load()

bool FolderTagIterator::load ( KisTagSP tag) const
inlineprivate

Definition at line 54 of file KisFolderStorage.cpp.

55 {
56 QFile f(m_dirIterator->filePath());
57 tag->setFilename(m_dirIterator->fileName());
58 if (f.exists()) {
59 f.open(QFile::ReadOnly);
60 if (!tag->load(f)) {
61 qWarning() << m_dirIterator->filePath() << "is not a valid tag desktop file";
62 return false;
63 }
64
65 }
66 return true;
67 }
KisTagSP tag() const override
A tag object on which we can set properties and which we can save.

References m_dirIterator, and tag().

◆ next()

void FolderTagIterator::next ( )
inlineoverridevirtual

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

Implements KisResourceStorage::TagIterator.

Definition at line 38 of file KisFolderStorage.cpp.

39 {
40 m_dirIterator->next();
41 const_cast<FolderTagIterator*>(this)->m_tag.reset(new KisTag);
42 if (!load(m_tag)) {
43 qWarning() << "Could not load tag" << m_dirIterator->filePath();
44 }
45 }
bool load(KisTagSP tag) const
The KisTag loads a tag from a .tag file. A .tag file is a .desktop file. The following fields are imp...
Definition KisTag.h:34

References load(), m_dirIterator, and m_tag.

◆ tag()

KisTagSP FolderTagIterator::tag ( ) const
inlineoverridevirtual

A tag object on which we can set properties and which we can save.

Implements KisResourceStorage::TagIterator.

Definition at line 47 of file KisFolderStorage.cpp.

48 {
49 return m_tag;
50 }

References m_tag.

Member Data Documentation

◆ m_dirIterator

QScopedPointer<QDirIterator> FolderTagIterator::m_dirIterator
private

Definition at line 69 of file KisFolderStorage.cpp.

◆ m_location

QString FolderTagIterator::m_location
private

Definition at line 70 of file KisFolderStorage.cpp.

◆ m_resourceType

QString FolderTagIterator::m_resourceType
private

Definition at line 71 of file KisFolderStorage.cpp.

◆ m_tag

KisTagSP FolderTagIterator::m_tag
private

Definition at line 72 of file KisFolderStorage.cpp.


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