Utils: Use FilePaths alias instead of QList<FilePath>

Change-Id: I2eb0956377e46a34e73208b301eb662704a25e8b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Alessandro Portale
2022-07-21 15:58:09 +02:00
parent c56c3ea024
commit afe0b5a42d
11 changed files with 29 additions and 30 deletions

View File

@@ -902,19 +902,19 @@ static bool findNewQmlLibraryInPath(const Utils::FilePath &path,
return true; return true;
} }
static FilePath modulePath(const ImportInfo &import, const QList<FilePath> &paths) static FilePath modulePath(const ImportInfo &import, const FilePaths &paths)
{ {
if (!import.version().isValid()) if (!import.version().isValid())
return FilePath(); return FilePath();
const QList<FilePath> modPaths = modulePaths(import.name(), import.version().toString(), paths); const FilePaths modPaths = modulePaths(import.name(), import.version().toString(), paths);
return modPaths.value(0); // first is best match return modPaths.value(0); // first is best match
} }
static void findNewLibraryImports(const Document::Ptr &doc, static void findNewLibraryImports(const Document::Ptr &doc,
const Snapshot &snapshot, const Snapshot &snapshot,
ModelManagerInterface *modelManager, ModelManagerInterface *modelManager,
QList<FilePath> *importedFiles, FilePaths *importedFiles,
QSet<Utils::FilePath> *scannedPaths, QSet<Utils::FilePath> *scannedPaths,
QSet<Utils::FilePath> *newLibraries) QSet<Utils::FilePath> *newLibraries)
{ {
@@ -923,7 +923,7 @@ static void findNewLibraryImports(const Document::Ptr &doc,
importedFiles, scannedPaths, newLibraries, false); importedFiles, scannedPaths, newLibraries, false);
// scan dir and lib imports // scan dir and lib imports
const QList<FilePath> importPaths = modelManager->importPathsNames(); const FilePaths importPaths = modelManager->importPathsNames();
const auto imports = doc->bind()->imports(); const auto imports = doc->bind()->imports();
for (const ImportInfo &import : imports) { for (const ImportInfo &import : imports) {
switch (import.type()) { switch (import.type()) {

View File

@@ -1454,13 +1454,13 @@ Environment FilePath::deviceEnvironment() const
return Environment::systemEnvironment(); return Environment::systemEnvironment();
} }
QString FilePath::formatFilePaths(const QList<FilePath> &files, const QString &separator) QString FilePath::formatFilePaths(const FilePaths &files, const QString &separator)
{ {
const QStringList nativeFiles = transform(files, &FilePath::toUserOutput); const QStringList nativeFiles = transform(files, &FilePath::toUserOutput);
return nativeFiles.join(separator); return nativeFiles.join(separator);
} }
void FilePath::removeDuplicates(QList<FilePath> &files) void FilePath::removeDuplicates(FilePaths &files)
{ {
// FIXME: Improve. // FIXME: Improve.
QStringList list = transform<QStringList>(files, &FilePath::toString); QStringList list = transform<QStringList>(files, &FilePath::toString);
@@ -1468,7 +1468,7 @@ void FilePath::removeDuplicates(QList<FilePath> &files)
files = transform(list, &FilePath::fromString); files = transform(list, &FilePath::fromString);
} }
void FilePath::sort(QList<FilePath> &files) void FilePath::sort(FilePaths &files)
{ {
// FIXME: Improve. // FIXME: Improve.
QStringList list = transform<QStringList>(files, &FilePath::toString); QStringList list = transform<QStringList>(files, &FilePath::toString);

View File

@@ -62,6 +62,8 @@ public:
const QDirIterator::IteratorFlags iteratorFlags = QDirIterator::NoIteratorFlags; const QDirIterator::IteratorFlags iteratorFlags = QDirIterator::NoIteratorFlags;
}; };
using FilePaths = QList<class FilePath>;
class QTCREATOR_UTILS_EXPORT FilePath class QTCREATOR_UTILS_EXPORT FilePath
{ {
public: public:
@@ -132,9 +134,8 @@ public:
qint64 fileSize() const; qint64 fileSize() const;
qint64 bytesAvailable() const; qint64 bytesAvailable() const;
bool createDir() const; bool createDir() const;
QList<FilePath> dirEntries(const FileFilter &filter, FilePaths dirEntries(const FileFilter &filter, QDir::SortFlags sort = QDir::NoSort) const;
QDir::SortFlags sort = QDir::NoSort) const; FilePaths dirEntries(QDir::Filters filters) const;
QList<FilePath> dirEntries(QDir::Filters filters) const;
QByteArray fileContents(qint64 maxSize = -1, qint64 offset = 0) const; QByteArray fileContents(qint64 maxSize = -1, qint64 offset = 0) const;
bool writeFileContents(const QByteArray &data) const; bool writeFileContents(const QByteArray &data) const;
@@ -163,18 +164,18 @@ public:
[[nodiscard]] FilePath withExecutableSuffix() const; [[nodiscard]] FilePath withExecutableSuffix() const;
[[nodiscard]] FilePath relativeChildPath(const FilePath &parent) const; [[nodiscard]] FilePath relativeChildPath(const FilePath &parent) const;
[[nodiscard]] FilePath relativePath(const FilePath &anchor) const; [[nodiscard]] FilePath relativePath(const FilePath &anchor) const;
[[nodiscard]] FilePath searchInDirectories(const QList<FilePath> &dirs) const; [[nodiscard]] FilePath searchInDirectories(const FilePaths &dirs) const;
[[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<bool(const FilePath &item)> &callBack, void iterateDirectory(const std::function<bool(const FilePath &item)> &callBack,
const FileFilter &filter) const; const FileFilter &filter) const;
static void iterateDirectories(const QList<FilePath> &dirs, static void iterateDirectories(const FilePaths &dirs,
const std::function<bool(const FilePath &item)> &callBack, const std::function<bool(const FilePath &item)> &callBack,
const FileFilter &filter); const FileFilter &filter);
enum PathAmending { AppendToPath, PrependToPath }; enum PathAmending { AppendToPath, PrependToPath };
[[nodiscard]] FilePath searchInPath(const QList<FilePath> &additionalDirs = {}, [[nodiscard]] FilePath searchInPath(const FilePaths &additionalDirs = {},
PathAmending = AppendToPath) const; PathAmending = AppendToPath) const;
// makes sure that capitalization of directories is canonical // makes sure that capitalization of directories is canonical
@@ -186,9 +187,9 @@ public:
QString shortNativePath() const; QString shortNativePath() const;
bool startsWithDriveLetter() const; bool startsWithDriveLetter() const;
static QString formatFilePaths(const QList<FilePath> &files, const QString &separator); static QString formatFilePaths(const FilePaths &files, const QString &separator);
static void removeDuplicates(QList<FilePath> &files); static void removeDuplicates(FilePaths &files);
static void sort(QList<FilePath> &files); static void sort(FilePaths &files);
// Asynchronous interface // Asynchronous interface
template <class ...Args> using Continuation = std::function<void(Args...)>; template <class ...Args> using Continuation = std::function<void(Args...)>;
@@ -232,8 +233,6 @@ private:
QString m_data; QString m_data;
}; };
using FilePaths = QList<FilePath>;
inline size_t qHash(const Utils::FilePath &a, uint seed = 0) inline size_t qHash(const Utils::FilePath &a, uint seed = 0)
{ {
return a.hash(seed); return a.hash(seed);

View File

@@ -71,7 +71,7 @@ public:
std::function<bool(const FilePath &)> removeRecursively; std::function<bool(const FilePath &)> removeRecursively;
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 &, const QList<FilePath> &)> searchInPath; std::function<FilePath(const FilePath &, const FilePaths &)> searchInPath;
std::function<FilePath(const FilePath &)> symLinkTarget; std::function<FilePath(const FilePath &)> symLinkTarget;
std::function<QString(const FilePath &)> mapToDevicePath; std::function<QString(const FilePath &)> mapToDevicePath;
std::function<void(const FilePath &, std::function<void(const FilePath &,
@@ -104,7 +104,7 @@ public:
CopyAskingForOverwrite(QWidget *dialogParent, CopyAskingForOverwrite(QWidget *dialogParent,
const std::function<void(FilePath)> &postOperation = {}); const std::function<void(FilePath)> &postOperation = {});
bool operator()(const FilePath &src, const FilePath &dest, QString *error); bool operator()(const FilePath &src, const FilePath &dest, QString *error);
QList<FilePath> files() const; FilePaths files() const;
private: private:
QWidget *m_parent; QWidget *m_parent;

View File

@@ -402,7 +402,7 @@ static QList<int> availableNdkPlatformsV21Plus(const FilePath &ndkLocation, cons
const QString abi = AndroidConfig::toolsPrefix(abis.first()); const QString abi = AndroidConfig::toolsPrefix(abis.first());
const FilePath libPath = const FilePath libPath =
AndroidConfig::toolchainPathFromNdk(ndkLocation, hostOs) / "sysroot/usr/lib" / abi; AndroidConfig::toolchainPathFromNdk(ndkLocation, hostOs) / "sysroot/usr/lib" / abi;
const QList<FilePath> dirEntries = libPath.dirEntries(QDir::Dirs | QDir::NoDotAndDotDot); const FilePaths dirEntries = libPath.dirEntries(QDir::Dirs | QDir::NoDotAndDotDot);
const QList<int> availableNdkPlatforms = const QList<int> availableNdkPlatforms =
Utils::transform(dirEntries, [](const FilePath &path) { Utils::transform(dirEntries, [](const FilePath &path) {
return path.fileName().toInt(); }); return path.fileName().toInt(); });

View File

@@ -176,7 +176,7 @@ static FilePath clangPlusPlusPath(const FilePath &clangPath)
return clangPath.parentDir().pathAppended(clangPath.baseName() + "++").withExecutableSuffix(); return clangPath.parentDir().pathAppended(clangPath.baseName() + "++").withExecutableSuffix();
} }
static QList<FilePath> uniqueNdksForCurrentQtVersions() static FilePaths uniqueNdksForCurrentQtVersions()
{ {
const AndroidConfig &config = AndroidConfigurations::currentConfig(); const AndroidConfig &config = AndroidConfigurations::currentConfig();
@@ -185,7 +185,7 @@ static QList<FilePath> uniqueNdksForCurrentQtVersions()
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE); return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE);
}); });
QList<FilePath> uniqueNdks; FilePaths uniqueNdks;
for (const QtSupport::QtVersion *version : androidQtVersions) { for (const QtSupport::QtVersion *version : androidQtVersions) {
FilePath ndk = config.ndkLocation(version); FilePath ndk = config.ndkLocation(version);
if (!uniqueNdks.contains(ndk)) if (!uniqueNdks.contains(ndk))

View File

@@ -81,7 +81,7 @@ static QStringList scanDirectory(const FilePath &path, const QString &prefix)
QStringList result; QStringList result;
qCDebug(cmInputLog) << "Scanning for directories matching" << prefix << "in" << path; qCDebug(cmInputLog) << "Scanning for directories matching" << prefix << "in" << path;
const QList<FilePath> entries = path.dirEntries({{prefix + "*"}, QDir::Dirs | QDir::NoDotAndDotDot}); const FilePaths entries = path.dirEntries({{prefix + "*"}, QDir::Dirs | QDir::NoDotAndDotDot});
for (const FilePath &entry : entries) { for (const FilePath &entry : entries) {
QTC_ASSERT(entry.isDir(), continue); QTC_ASSERT(entry.isDir(), continue);
result.append(entry.toString()); result.append(entry.toString());

View File

@@ -75,8 +75,8 @@ private:
std::unique_ptr<QtcProcess> m_process; std::unique_ptr<QtcProcess> m_process;
QMutex m_mutex; QMutex m_mutex;
QWaitCondition m_waitForItems; QWaitCondition m_waitForItems;
QList<FilePath> m_queue; FilePaths m_queue;
QList<FilePath> m_filePaths; FilePaths m_filePaths;
int m_index; int m_index;
bool m_finished; bool m_finished;
}; };

View File

@@ -1473,8 +1473,8 @@ void MainWindow::changeLog()
ICore::raiseWindow(dialog); ICore::raiseWindow(dialog);
return; return;
} }
const QList<FilePath> files = ICore::resourcePath("changelog") const FilePaths files =
.dirEntries({{"changes-*"}, QDir::Files}); ICore::resourcePath("changelog").dirEntries({{"changes-*"}, QDir::Files});
static const QRegularExpression versionRegex("\\d+[.]\\d+[.]\\d+"); static const QRegularExpression versionRegex("\\d+[.]\\d+[.]\\d+");
using VersionFilePair = std::pair<QVersionNumber, FilePath>; using VersionFilePair = std::pair<QVersionNumber, FilePath>;
QList<VersionFilePair> versionedFiles = Utils::transform(files, [](const FilePath &fp) { QList<VersionFilePair> versionedFiles = Utils::transform(files, [](const FilePath &fp) {

View File

@@ -253,7 +253,7 @@ static FileType fileType(const FilePath &path)
static void dirEntries(QFutureInterface<ResultType> &futureInterface, const FilePath &dir) static void dirEntries(QFutureInterface<ResultType> &futureInterface, const FilePath &dir)
{ {
const QList<FilePath> entries = dir.dirEntries(QDir::NoFilter); const FilePaths entries = dir.dirEntries(QDir::NoFilter);
ResultType result; ResultType result;
for (const FilePath &entry : entries) { for (const FilePath &entry : entries) {
if (futureInterface.isCanceled()) if (futureInterface.isCanceled())

View File

@@ -129,7 +129,7 @@ static FilePath filePathValue(const FilePath &value, const QStringList &candidat
{ {
if (!value.isEmpty()) if (!value.isEmpty())
return value; return value;
const QList<FilePath> additionalSearchPaths = sshSettings->searchPathRetriever(); const FilePaths additionalSearchPaths = sshSettings->searchPathRetriever();
for (const QString &candidate : candidateFileNames) { for (const QString &candidate : candidateFileNames) {
const FilePath filePath = Environment::systemEnvironment() const FilePath filePath = Environment::systemEnvironment()
.searchInPath(candidate, additionalSearchPaths); .searchInPath(candidate, additionalSearchPaths);