summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorJoão Abecasis <joao@abecasis.name>2009-07-16 17:17:45 (GMT)
committerJoão Abecasis <joao@abecasis.name>2009-07-22 12:36:15 (GMT)
commit615e3e55fc56a5f5378db404cd89a443e7e74e56 (patch)
tree8fdf3403a31773c0e961a22070d251ee90f74e95 /src/corelib
parent40276797e5a1e723826afe0c4d4cdeef99f1d309 (diff)
downloadQt-615e3e55fc56a5f5378db404cd89a443e7e74e56.zip
Qt-615e3e55fc56a5f5378db404cd89a443e7e74e56.tar.gz
Qt-615e3e55fc56a5f5378db404cd89a443e7e74e56.tar.bz2
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')
-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 5f37bd7..51bb98a 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;