Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QDirListingPrivate Class Reference
+ Collaboration diagram for QDirListingPrivate:

Public Types

using FEngineIteratorPtr = std::unique_ptr<QAbstractFileEngineIterator>
 
using FsIteratorPtr = std::unique_ptr<QFileSystemIterator>
 

Public Member Functions

void init (bool resolveEngine)
 
void advance ()
 
bool entryMatches (QDirEntryInfo &info)
 
void pushDirectory (QDirEntryInfo &info)
 
void pushInitialDirectory ()
 
void checkAndPushDirectory (QDirEntryInfo &info)
 
bool matchesFilters (QDirEntryInfo &data) const
 
bool hasIterators () const
 

Public Attributes

std::unique_ptr< QAbstractFileEngineengine
 
QDirEntryInfo initialEntryInfo
 
QStringList nameFilters
 
QDir::Filters filters
 
QDirListing::IteratorFlags iteratorFlags
 
QDirEntryInfo currentEntryInfo
 
std::stack< FEngineIteratorPtr, std::vector< FEngineIteratorPtr > > fileEngineIterators
 
std::stack< FsIteratorPtr, std::vector< FsIteratorPtr > > nativeIterators
 
QDuplicateTracker< QStringvisitedLinks
 

Detailed Description

Definition at line 90 of file qdirlisting.cpp.

Member Typedef Documentation

◆ FEngineIteratorPtr

Definition at line 115 of file qdirlisting.cpp.

◆ FsIteratorPtr

Definition at line 118 of file qdirlisting.cpp.

Member Function Documentation

◆ advance()

void QDirListingPrivate::advance ( )

Advances the internal iterator, either a QAbstractFileEngineIterator (e.g. QResourceFileEngineIterator) or a QFileSystemIterator (which uses low-level system methods, e.g. readdir() on Unix).

An iterator stack is used for holding the iterators.

A typical example of doing recursive iteration:

  • while iterating directory A we find a sub-dir B
  • an iterator for B is added to the iterator stack
  • B's iterator is processed (the top() of the stack) first; then loop goes back to processing A's iterator

Definition at line 209 of file qdirlisting.cpp.

References currentEntryInfo, engine, entryMatches(), fileEngineIterators, it, and nativeIterators.

Referenced by QDirListing::const_iterator::operator++().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkAndPushDirectory()

void QDirListingPrivate::checkAndPushDirectory ( QDirEntryInfo & info)

Definition at line 250 of file qdirlisting.cpp.

References QDir::AllDirs, fileName, filters, QDir::Hidden, iteratorFlags, and pushDirectory().

Referenced by entryMatches().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ entryMatches()

bool QDirListingPrivate::entryMatches ( QDirEntryInfo & info)

Definition at line 188 of file qdirlisting.cpp.

References checkAndPushDirectory(), and matchesFilters().

Referenced by advance().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasIterators()

bool QDirListingPrivate::hasIterators ( ) const

Definition at line 361 of file qdirlisting.cpp.

References engine, fileEngineIterators, and nativeIterators.

Referenced by QDirListing::const_iterator::operator++().

+ Here is the caller graph for this function:

◆ init()

void QDirListingPrivate::init ( bool resolveEngine = true)

Definition at line 126 of file qdirlisting.cpp.

References QDir::AllEntries, Qt::CaseInsensitive, Qt::CaseSensitive, QDir::CaseSensitive, QFileSystemEngine::createLegacyEngine(), engine, filters, QRegularExpression::fromWildcard(), initialEntryInfo, nameFilters, QDir::NoFilter, and pushDirectory().

+ Here is the call graph for this function:

◆ matchesFilters()

bool QDirListingPrivate::matchesFilters ( QDirEntryInfo & entryInfo) const

This functions returns true if the current entry matches the filters (i.e., the current entry will be returned as part of the directory iteration); otherwise, false is returned.

Definition at line 284 of file qdirlisting.cpp.

References QDir::AllDirs, QDir::Dirs, QDir::Executable, fileName, QDir::Files, filters, QDir::Hidden, QDir::NoDot, QDir::NoDotDot, QDir::NoSymLinks, QDir::PermissionMask, QDir::Readable, QString::size(), QDir::System, and QDir::Writable.

Referenced by entryMatches().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pushDirectory()

void QDirListingPrivate::pushDirectory ( QDirEntryInfo & info)

Definition at line 150 of file qdirlisting.cpp.

References engine, fileEngineIterators, filters, QDirListing::FollowSymlinks, QDuplicateTracker< T, Prealloc >::hasSeen(), it, iteratorFlags, nameFilters, nativeIterators, qWarning, and visitedLinks.

Referenced by checkAndPushDirectory(), and init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pushInitialDirectory()

void QDirListingPrivate::pushInitialDirectory ( )

Member Data Documentation

◆ currentEntryInfo

QDirEntryInfo QDirListingPrivate::currentEntryInfo

Definition at line 109 of file qdirlisting.cpp.

Referenced by advance().

◆ engine

std::unique_ptr<QAbstractFileEngine> QDirListingPrivate::engine

Definition at line 104 of file qdirlisting.cpp.

Referenced by advance(), hasIterators(), init(), and pushDirectory().

◆ fileEngineIterators

std::stack<FEngineIteratorPtr, std::vector<FEngineIteratorPtr> > QDirListingPrivate::fileEngineIterators

Definition at line 116 of file qdirlisting.cpp.

Referenced by advance(), hasIterators(), and pushDirectory().

◆ filters

QDir::Filters QDirListingPrivate::filters

Definition at line 107 of file qdirlisting.cpp.

Referenced by checkAndPushDirectory(), init(), matchesFilters(), and pushDirectory().

◆ initialEntryInfo

QDirEntryInfo QDirListingPrivate::initialEntryInfo

Definition at line 105 of file qdirlisting.cpp.

Referenced by init().

◆ iteratorFlags

QDirListing::IteratorFlags QDirListingPrivate::iteratorFlags

Definition at line 108 of file qdirlisting.cpp.

Referenced by checkAndPushDirectory(), and pushDirectory().

◆ nameFilters

QStringList QDirListingPrivate::nameFilters

Definition at line 106 of file qdirlisting.cpp.

Referenced by init(), and pushDirectory().

◆ nativeIterators

std::stack<FsIteratorPtr, std::vector<FsIteratorPtr> > QDirListingPrivate::nativeIterators

Definition at line 119 of file qdirlisting.cpp.

Referenced by advance(), hasIterators(), and pushDirectory().

◆ visitedLinks

QDuplicateTracker<QString> QDirListingPrivate::visitedLinks

Definition at line 123 of file qdirlisting.cpp.

Referenced by pushDirectory().


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