summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qdiriterator.cpp
diff options
context:
space:
mode:
authorJoão Abecasis <joao@abecasis.name>2009-07-16 19:17:45 +0200
committerJoão Abecasis <joao@abecasis.name>2009-07-22 14:36:15 +0200
commit615e3e55fc56a5f5378db404cd89a443e7e74e56 (patch)
tree8fdf3403a31773c0e961a22070d251ee90f74e95 /src/corelib/io/qdiriterator.cpp
parent40276797e5a1e723826afe0c4d4cdeef99f1d309 (diff)
QDirIterator: another one bites the dust
Removing another data member in QDirIteratorPrivate. The only reason I see for not doing this is to delay doing work as much as possible. Since copy constructors are disabled anyway, once QDirIterator is instantiated one has already signed up for the pain. The code also looks cleaner this way. Reviewed-by: Marius Storm-Olsen
Diffstat (limited to 'src/corelib/io/qdiriterator.cpp')
-rw-r--r--src/corelib/io/qdiriterator.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp
index 5f37bd71d8..51bb98ab52 100644
--- a/src/corelib/io/qdiriterator.cpp
+++ b/src/corelib/io/qdiriterator.cpp
@@ -121,7 +121,6 @@ public:
QDirIterator::IteratorFlags iteratorFlags;
QDir::Filters filters;
QStringList nameFilters;
- bool followNextDir;
bool first;
bool done;
@@ -135,7 +134,7 @@ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList
QDir::Filters filters, QDirIterator::IteratorFlags flags)
: engine(0), path(path), iteratorFlags(flags),
filters(filters), nameFilters(nameFilters),
- followNextDir(false), first(true), done(false)
+ first(true), done(false)
{
if (QDir::NoFilter == filters)
this->filters = QDir::AllEntries;
@@ -183,14 +182,6 @@ void QDirIteratorPrivate::pushSubDirectory(const QFileInfo &fileInfo)
*/
void QDirIteratorPrivate::advance()
{
- // Advance to the next entry
- if (followNextDir) {
- // Start by navigating into the current directory.
- QAbstractFileEngineIterator *it = fileEngineIterators.top();
- pushSubDirectory(it->currentFileInfo());
- followNextDir = false;
- }
-
while (!fileEngineIterators.isEmpty()) {
QAbstractFileEngineIterator *it = fileEngineIterators.top();
@@ -202,8 +193,10 @@ void QDirIteratorPrivate::advance()
if (matchesFilters(it->currentFileName(), info)) {
currentFileInfo = nextFileInfo;
nextFileInfo = info;
- // Signal that we want to follow this entry.
- followNextDir = shouldFollowDirectory(nextFileInfo);
+
+ if(shouldFollowDirectory(nextFileInfo))
+ pushSubDirectory(nextFileInfo);
+
//We found a matching entry.
return;