Utils: Also pass Sort flag to FilePath::dirEntries

Change-Id: Ic21c2ba3ef59c6bb3e19552904187b3c6a096d80
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-06-29 11:10:27 +02:00
parent bddcf63da9
commit b8e6d05ded
9 changed files with 29 additions and 21 deletions

View File

@@ -952,14 +952,16 @@ bool FilePath::createDir() const
return dir.mkpath(dir.absolutePath()); return dir.mkpath(dir.absolutePath());
} }
QList<FilePath> FilePath::dirEntries(const QStringList &nameFilters, QDir::Filters filters) const QList<FilePath> FilePath::dirEntries(const QStringList &nameFilters,
QDir::Filters filters,
QDir::SortFlags sort) const
{ {
if (needsDevice()) { if (needsDevice()) {
QTC_ASSERT(s_deviceHooks.dirEntries, return {}); QTC_ASSERT(s_deviceHooks.dirEntries, return {});
return s_deviceHooks.dirEntries(*this, nameFilters, filters); return s_deviceHooks.dirEntries(*this, nameFilters, filters, sort);
} }
const QFileInfoList entryInfoList = QDir(toString()).entryInfoList(nameFilters, filters); const QFileInfoList entryInfoList = QDir(m_data).entryInfoList(nameFilters, filters, sort);
return Utils::transform(entryInfoList, &FilePath::fromFileInfo); return Utils::transform(entryInfoList, &FilePath::fromFileInfo);
} }

View File

@@ -83,7 +83,8 @@ public:
std::function<bool(const FilePath &, const FilePath &)> copyFile; std::function<bool(const FilePath &, const FilePath &)> copyFile;
std::function<bool(const FilePath &, const FilePath &)> renameFile; std::function<bool(const FilePath &, const FilePath &)> renameFile;
std::function<FilePath(const FilePath &)> searchInPath; std::function<FilePath(const FilePath &)> searchInPath;
std::function<QList<FilePath>(const FilePath &, const QStringList &, QDir::Filters)> dirEntries; std::function<QList<FilePath>(const FilePath &, const QStringList &,
QDir::Filters, QDir::SortFlags)> dirEntries;
std::function<QByteArray(const FilePath &, int)> fileContents; std::function<QByteArray(const FilePath &, int)> fileContents;
std::function<bool(const FilePath &, const QByteArray &)> writeFileContents; std::function<bool(const FilePath &, const QByteArray &)> writeFileContents;
std::function<QDateTime(const FilePath &)> lastModified; std::function<QDateTime(const FilePath &)> lastModified;
@@ -141,7 +142,9 @@ public:
bool isReadableFile() const; bool isReadableFile() const;
bool isReadableDir() const; bool isReadableDir() const;
bool createDir() const; bool createDir() const;
QList<FilePath> dirEntries(const QStringList &nameFilters, QDir::Filters filters) const; QList<FilePath> dirEntries(const QStringList &nameFilters,
QDir::Filters filters,
QDir::SortFlags sort = QDir::NoSort) const;
QList<FilePath> dirEntries(QDir::Filters filters) const; QList<FilePath> dirEntries(QDir::Filters filters) const;
QByteArray fileContents(int maxSize = -1) const; QByteArray fileContents(int maxSize = -1) const;
bool writeFileContents(const QByteArray &data) const; bool writeFileContents(const QByteArray &data) const;

View File

@@ -995,17 +995,14 @@ FilePath DockerDevice::searchInPath(const FilePath &filePath) const
QList<FilePath> DockerDevice::directoryEntries(const FilePath &filePath, QList<FilePath> DockerDevice::directoryEntries(const FilePath &filePath,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters) const QDir::Filters filters,
QDir::SortFlags sort) const
{ {
QTC_ASSERT(handlesFile(filePath), return {}); QTC_ASSERT(handlesFile(filePath), return {});
tryCreateLocalFileAccess(); tryCreateLocalFileAccess();
if (hasLocalFileAccess()) { if (hasLocalFileAccess())
const FilePath localAccess = mapToLocalAccess(filePath); return mapToLocalAccess(filePath).dirEntries(nameFilters, filters, sort);
const QFileInfoList entryInfoList = QDir(localAccess.toString()).entryInfoList(nameFilters, filters);
return Utils::transform(entryInfoList, [this](const QFileInfo &fi) {
return mapFromLocalAccess(fi.absoluteFilePath());
});
}
QTC_CHECK(false); // FIXME: Implement QTC_CHECK(false); // FIXME: Implement
return {}; return {};
} }

View File

@@ -90,7 +90,8 @@ public:
Utils::FilePath searchInPath(const Utils::FilePath &filePath) const override; Utils::FilePath searchInPath(const Utils::FilePath &filePath) const override;
QList<Utils::FilePath> directoryEntries(const Utils::FilePath &filePath, QList<Utils::FilePath> directoryEntries(const Utils::FilePath &filePath,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters) const override; QDir::Filters filters,
QDir::SortFlags sort) const override;
QByteArray fileContents(const Utils::FilePath &filePath, int limit) const override; QByteArray fileContents(const Utils::FilePath &filePath, int limit) const override;
bool writeFileContents(const Utils::FilePath &filePath, const QByteArray &data) const override; bool writeFileContents(const Utils::FilePath &filePath, const QByteArray &data) const override;
QDateTime lastModified(const Utils::FilePath &filePath) const override; QDateTime lastModified(const Utils::FilePath &filePath) const override;

View File

@@ -180,7 +180,8 @@ bool DesktopDevice::handlesFile(const FilePath &filePath) const
QList<FilePath> DesktopDevice::directoryEntries(const FilePath &filePath, QList<FilePath> DesktopDevice::directoryEntries(const FilePath &filePath,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters) const QDir::Filters filters,
QDir::SortFlags sort) const
{ {
QTC_CHECK(!filePath.needsDevice()); QTC_CHECK(!filePath.needsDevice());
const QDir dir(filePath.path()); const QDir dir(filePath.path());

View File

@@ -57,7 +57,8 @@ public:
bool handlesFile(const Utils::FilePath &filePath) const override; bool handlesFile(const Utils::FilePath &filePath) const override;
QList<Utils::FilePath> directoryEntries(const Utils::FilePath &filePath, QList<Utils::FilePath> directoryEntries(const Utils::FilePath &filePath,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters) const override; QDir::Filters filters,
QDir::SortFlags sort) const override;
Utils::Environment systemEnvironment() const override; Utils::Environment systemEnvironment() const override;

View File

@@ -459,11 +459,11 @@ DeviceManager::DeviceManager(bool isInstance) : d(std::make_unique<DeviceManager
return device->searchInPath(filePath); return device->searchInPath(filePath);
}; };
deviceHooks.dirEntries = [](const FilePath &filePath, deviceHooks.dirEntries = [](const FilePath &filePath, const QStringList &nameFilters,
const QStringList &nameFilters, QDir::Filters filters) { QDir::Filters filters, QDir::SortFlags sort) {
auto device = DeviceManager::deviceForPath(filePath); auto device = DeviceManager::deviceForPath(filePath);
QTC_ASSERT(device, return FilePaths()); QTC_ASSERT(device, return FilePaths());
return device->directoryEntries(filePath, nameFilters, filters); return device->directoryEntries(filePath, nameFilters, filters, sort);
}; };
deviceHooks.fileContents = [](const FilePath &filePath, int maxSize) { deviceHooks.fileContents = [](const FilePath &filePath, int maxSize) {

View File

@@ -318,11 +318,13 @@ FilePath IDevice::searchInPath(const FilePath &filePath) const
QList<FilePath> IDevice::directoryEntries(const FilePath &filePath, QList<FilePath> IDevice::directoryEntries(const FilePath &filePath,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters) const QDir::Filters filters,
QDir::SortFlags sort) const
{ {
Q_UNUSED(filePath); Q_UNUSED(filePath);
Q_UNUSED(nameFilters); Q_UNUSED(nameFilters);
Q_UNUSED(filters); Q_UNUSED(filters);
Q_UNUSED(sort);
QTC_CHECK(false); QTC_CHECK(false);
return {}; return {};
} }

View File

@@ -252,7 +252,8 @@ public:
virtual Utils::FilePath searchInPath(const Utils::FilePath &filePath) const; virtual Utils::FilePath searchInPath(const Utils::FilePath &filePath) const;
virtual QList<Utils::FilePath> directoryEntries(const Utils::FilePath &filePath, virtual QList<Utils::FilePath> directoryEntries(const Utils::FilePath &filePath,
const QStringList &nameFilters, const QStringList &nameFilters,
QDir::Filters filters) const; QDir::Filters filters,
QDir::SortFlags sort = QDir::NoSort) const;
virtual QByteArray fileContents(const Utils::FilePath &filePath, int limit) const; virtual QByteArray fileContents(const Utils::FilePath &filePath, int limit) const;
virtual bool writeFileContents(const Utils::FilePath &filePath, const QByteArray &data) const; virtual bool writeFileContents(const Utils::FilePath &filePath, const QByteArray &data) const;
virtual QDateTime lastModified(const Utils::FilePath &filePath) const; virtual QDateTime lastModified(const Utils::FilePath &filePath) const;