ProjectExplorer: fix warnings of projectnodeshelper.h

Change-Id: I79ed8b4ac9fa3e8c25438678011e455bfedbaabc
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
David Schulz
2024-06-19 10:36:29 +02:00
parent dd962c2989
commit 1eb2535c62

View File

@@ -29,8 +29,8 @@ struct DirectoryScanResult
static DirectoryScanResult scanForFiles( static DirectoryScanResult scanForFiles(
const QFuture<void> &future, const QFuture<void> &future,
const Utils::FilePath &directory, const Utils::FilePath &directory,
const QDir::Filters &filter, QDir::Filters filter,
const std::function<FileNode *(const Utils::FilePath &)> factory, const std::function<FileNode *(const Utils::FilePath &)> &factory,
const QList<Core::IVersionControl *> &versionControls) const QList<Core::IVersionControl *> &versionControls)
{ {
DirectoryScanResult result; DirectoryScanResult result;
@@ -57,10 +57,10 @@ static DirectoryScanResult scanForFiles(
template<typename Result> template<typename Result>
QList<FileNode *> scanForFilesRecursively( QList<FileNode *> scanForFilesRecursively(
QPromise<Result> &promise, QPromise<Result> &promise,
double progressRange, int progressRange,
const Utils::FilePath &directory, const Utils::FilePath &directory,
const QDir::Filters &filter, QDir::Filters filter,
const std::function<FileNode *(const Utils::FilePath &)> factory, const std::function<FileNode *(const Utils::FilePath &)> &factory,
const QList<Core::IVersionControl *> &versionControls) const QList<Core::IVersionControl *> &versionControls)
{ {
const QFuture<void> future(promise.future()); const QFuture<void> future(promise.future());
@@ -69,10 +69,9 @@ QList<FileNode *> scanForFilesRecursively(
const DirectoryScanResult result const DirectoryScanResult result
= scanForFiles(future, directory, filter, factory, versionControls); = scanForFiles(future, directory, filter, factory, versionControls);
QList<FileNode *> fileNodes = result.nodes; QList<FileNode *> fileNodes = result.nodes;
const double progressIncrement = progressRange const int progressIncrement = int(
/ static_cast<double>( progressRange / static_cast<double>(fileNodes.count() + result.subDirectories.count()));
fileNodes.count() + result.subDirectories.count()); promise.setProgressValue(int(fileNodes.count() * progressIncrement));
promise.setProgressValue(fileNodes.count() * progressIncrement);
QList<QPair<Utils::FilePath, int>> subDirectories; QList<QPair<Utils::FilePath, int>> subDirectories;
auto addSubDirectories = [&](const Utils::FilePaths &subdirs, int progressIncrement) { auto addSubDirectories = [&](const Utils::FilePaths &subdirs, int progressIncrement) {
for (const Utils::FilePath &subdir : subdirs) { for (const Utils::FilePath &subdir : subdirs) {
@@ -98,12 +97,13 @@ QList<FileNode *> scanForFilesRecursively(
const int progressRange = iterator->second; const int progressRange = iterator->second;
const DirectoryScanResult result = task.result(); const DirectoryScanResult result = task.result();
fileNodes.append(result.nodes); fileNodes.append(result.nodes);
const int subDirCount = result.subDirectories.count(); const qsizetype subDirCount = result.subDirectories.count();
if (subDirCount == 0) { if (subDirCount == 0) {
promise.setProgressValue(promise.future().progressValue() + progressRange); promise.setProgressValue(promise.future().progressValue() + progressRange);
} else { } else {
const int fileCount = result.nodes.count(); const qsizetype fileCount = result.nodes.count();
const int increment = progressRange / static_cast<double>(fileCount + subDirCount); const int increment = int(
progressRange / static_cast<double>(fileCount + subDirCount));
promise.setProgressValue( promise.setProgressValue(
promise.future().progressValue() + increment * fileCount); promise.future().progressValue() + increment * fileCount);
addSubDirectories(result.subDirectories, increment); addSubDirectories(result.subDirectories, increment);
@@ -126,12 +126,12 @@ template<typename Result>
QList<FileNode *> scanForFiles( QList<FileNode *> scanForFiles(
QPromise<Result> &promise, QPromise<Result> &promise,
const Utils::FilePath &directory, const Utils::FilePath &directory,
const QDir::Filters &filter, QDir::Filters filter,
const std::function<FileNode *(const Utils::FilePath &)> factory) const std::function<FileNode *(const Utils::FilePath &)> &factory)
{ {
promise.setProgressRange(0, 1000000); promise.setProgressRange(0, 1000000);
return Internal::scanForFilesRecursively(promise, return Internal::scanForFilesRecursively(promise,
1000000.0, 1000000,
directory, directory,
filter, filter,
factory, factory,