forked from qt-creator/qt-creator
Utils: Wrap various file system iteration flags and filters
... into a single class. This makes passing them around as a whole easier, and opens a path to have "generic" filters in form of a lambda or such. Change-Id: Ibf644b2fedcf0f1a35258030710afff8f5873f88 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -51,6 +51,18 @@ namespace Utils {
|
||||
class Environment;
|
||||
class EnvironmentChange;
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT FileFilter
|
||||
{
|
||||
public:
|
||||
FileFilter(const QStringList &nameFilters,
|
||||
const QDir::Filters fileFilters = QDir::NoFilter,
|
||||
const QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags);
|
||||
|
||||
const QStringList nameFilters;
|
||||
const QDir::Filters fileFilters = QDir::NoFilter;
|
||||
const QDirIterator::IteratorFlags iteratorFlags = QDirIterator::NoIteratorFlags;
|
||||
};
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT FilePath
|
||||
{
|
||||
public:
|
||||
@@ -121,9 +133,7 @@ public:
|
||||
qint64 fileSize() const;
|
||||
qint64 bytesAvailable() const;
|
||||
bool createDir() const;
|
||||
QList<FilePath> dirEntries(const QStringList &nameFilters,
|
||||
QDir::Filters filters = QDir::NoFilter,
|
||||
QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags,
|
||||
QList<FilePath> dirEntries(const FileFilter &filter,
|
||||
QDir::SortFlags sort = QDir::NoSort) const;
|
||||
QList<FilePath> dirEntries(QDir::Filters filters) const;
|
||||
QByteArray fileContents(qint64 maxSize = -1, qint64 offset = 0) const;
|
||||
@@ -160,9 +170,7 @@ public:
|
||||
[[nodiscard]] FilePath onDevice(const FilePath &deviceTemplate) const;
|
||||
[[nodiscard]] FilePath withNewPath(const QString &newPath) const;
|
||||
void iterateDirectory(const std::function<bool(const FilePath &item)> &callBack,
|
||||
const QStringList &nameFilters,
|
||||
QDir::Filters filters = QDir::NoFilter,
|
||||
QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags) const;
|
||||
const FileFilter &filter) const;
|
||||
|
||||
// makes sure that capitalization of directories is canonical
|
||||
// on Windows and macOS. This is rarely needed.
|
||||
|
||||
Reference in New Issue
Block a user