FilePath: Add bool to lambda iterateDirectory

Change-Id: I017426a48981da2fbeb32b6d5bee87865d583c0b
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Artem Sokolovskii
2021-09-16 12:30:10 +02:00
parent 56f9d17d35
commit 905325358a
2 changed files with 6 additions and 4 deletions

View File

@@ -722,7 +722,7 @@ QList<FilePath> FilePath::dirEntries(QDir::Filters filters) const
return dirEntries({}, filters); return dirEntries({}, filters);
} }
void FilePath::iterateDirectory(const std::function<void(const FilePath &item)> &callBack, void FilePath::iterateDirectory(const std::function<bool(const FilePath &item)> &callBack,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters, QDir::Filters filters,
QDirIterator::IteratorFlags flags) const QDirIterator::IteratorFlags flags) const
@@ -730,12 +730,14 @@ void FilePath::iterateDirectory(const std::function<void(const FilePath &item)>
if (needsDevice()) { if (needsDevice()) {
for (const FilePath &filePath : for (const FilePath &filePath :
s_deviceHooks.dirEntries(*this, nameFilters, filters, QDir::NoSort)) s_deviceHooks.dirEntries(*this, nameFilters, filters, QDir::NoSort))
callBack(filePath); if (!callBack(filePath))
return;
} }
QDirIterator it(m_data, nameFilters, filters, flags); QDirIterator it(m_data, nameFilters, filters, flags);
while (it.hasNext()) while (it.hasNext())
callBack(FilePath::fromString(it.next())); if (!callBack(FilePath::fromString(it.next())))
return;
} }
QByteArray FilePath::fileContents(qint64 maxSize, qint64 offset) const QByteArray FilePath::fileContents(qint64 maxSize, qint64 offset) const

View File

@@ -156,7 +156,7 @@ public:
[[nodiscard]] Environment deviceEnvironment() const; [[nodiscard]] Environment deviceEnvironment() const;
[[nodiscard]] FilePath onDevice(const FilePath &deviceTemplate) const; [[nodiscard]] FilePath onDevice(const FilePath &deviceTemplate) const;
[[nodiscard]] FilePath withNewPath(const QString &newPath) const; [[nodiscard]] FilePath withNewPath(const QString &newPath) const;
void iterateDirectory(const std::function<void(const FilePath &item)> &callBack, void iterateDirectory(const std::function<bool(const FilePath &item)> &callBack,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters = QDir::NoFilter, QDir::Filters filters = QDir::NoFilter,
QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags) const; QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags) const;