/*! \internal */ void QDirIteratorPrivate::advance() { while (!fileEngineIterators.isEmpty()) { // Find the next valid iterator that matches the filters. while (fileEngineIterators.top()->hasNext()) { QAbstractFileEngineIterator *it = fileEngineIterators.top(); it->next(); const QFileInfo info = it->currentFileInfo(); checkAndPushDirectory(it->currentFileInfo()); if (matchesFilters(it->currentFileName(), info)) { currentFileInfo = nextFileInfo; nextFileInfo = info; //We found a matching entry. return; } } delete fileEngineIterators.pop(); } currentFileInfo = nextFileInfo; nextFileInfo = QFileInfo(); }
inline bool QDirIteratorPrivate::entryMatches(const QString & fileName, const QFileInfo &fileInfo) { checkAndPushDirectory(fileInfo); if (matchesFilters(fileName, fileInfo)) { currentFileInfo = nextFileInfo; nextFileInfo = fileInfo; //We found a matching entry. return true; } return false; }