diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp index e4ca8c0be1f..f39d7c90b3c 100644 --- a/src/libs/utils/filepath.cpp +++ b/src/libs/utils/filepath.cpp @@ -722,7 +722,7 @@ QList FilePath::dirEntries(QDir::Filters filters) const return dirEntries({}, filters); } -void FilePath::iterateDirectory(const std::function &callBack, +void FilePath::iterateDirectory(const std::function &callBack, const QStringList &nameFilters, QDir::Filters filters, QDirIterator::IteratorFlags flags) const @@ -730,12 +730,14 @@ void FilePath::iterateDirectory(const std::function if (needsDevice()) { for (const FilePath &filePath : s_deviceHooks.dirEntries(*this, nameFilters, filters, QDir::NoSort)) - callBack(filePath); + if (!callBack(filePath)) + return; } QDirIterator it(m_data, nameFilters, filters, flags); while (it.hasNext()) - callBack(FilePath::fromString(it.next())); + if (!callBack(FilePath::fromString(it.next()))) + return; } QByteArray FilePath::fileContents(qint64 maxSize, qint64 offset) const diff --git a/src/libs/utils/filepath.h b/src/libs/utils/filepath.h index c8b45d68d8a..409421eaf58 100644 --- a/src/libs/utils/filepath.h +++ b/src/libs/utils/filepath.h @@ -156,7 +156,7 @@ public: [[nodiscard]] Environment deviceEnvironment() const; [[nodiscard]] FilePath onDevice(const FilePath &deviceTemplate) const; [[nodiscard]] FilePath withNewPath(const QString &newPath) const; - void iterateDirectory(const std::function &callBack, + void iterateDirectory(const std::function &callBack, const QStringList &nameFilters, QDir::Filters filters = QDir::NoFilter, QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags) const;