diff options
author | João Abecasis <joao@abecasis.name> | 2009-07-17 10:21:15 (GMT) |
---|---|---|
committer | João Abecasis <joao@abecasis.name> | 2009-07-22 12:36:15 (GMT) |
commit | 316fec414c651fb4c5dc9666344219b0137e704f (patch) | |
tree | b08309e6a87d97a4be3823c7db187d09a95f1ba4 | |
parent | 5f18fa27a6e87ee7cd568388cdf59cf85a3620e5 (diff) | |
download | Qt-316fec414c651fb4c5dc9666344219b0137e704f.zip Qt-316fec414c651fb4c5dc9666344219b0137e704f.tar.gz Qt-316fec414c651fb4c5dc9666344219b0137e704f.tar.bz2 |
QDirIterator: Don't recurse into hidden directories unless asked
If we're skipping hidden files, we should skip hidden directories as
well. The user can still request that hidden directories not be skipped
by specifying QDir::AllDirs in the filter.
Incidentally, all other filters are ignored when recursing into
sub-directories. Perhaps that should be addressed as well.
Reviewed-by: Marius Storm-Olsen
-rw-r--r-- | src/corelib/io/qdiriterator.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index 6d6542f..f36320e 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -244,6 +244,10 @@ bool QDirIteratorPrivate::shouldFollowDirectory(const QFileInfo &fileInfo) if (QLatin1String(".") == fileName || QLatin1String("..") == fileName) return false; + // No hidden directories unless requested + if (!(filters & QDir::AllDirs) && !(filters & QDir::Hidden) && fileInfo.isHidden()) + return false; + // Stop link loops if (visitedLinks.contains(fileInfo.canonicalFilePath())) return false; |