Additional work on batch processing

This commit is contained in:
2024-03-29 18:08:57 +01:00
parent c3588e1c36
commit 933fd4a2a0
3 changed files with 143 additions and 36 deletions
+6 -6
View File
@@ -17,12 +17,12 @@
#include <QMessageBox>
#endif
QStringList scanDirectories(const QStringList &paths)
QList<QPair<QString, QString>> scanDirectories(const QStringList &paths)
{
QStringList files;
QList<QPair<QString, QString>> files;
QStringList scannedDirs;
std::function<void(const QString &path)> scanDirectory = [&](const QString &path)
std::function<void(const QString &root, const QString &path)> scanDirectory = [&](const QString &root, const QString &path)
{
QFileInfo info(path);
if(info.isDir() && !scannedDirs.contains(info.canonicalFilePath()))
@@ -31,16 +31,16 @@ QStringList scanDirectories(const QStringList &paths)
QDir dir(path);
QStringList entries = dir.entryList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
for(QString &entry : entries)
scanDirectory(dir.absoluteFilePath(entry));
scanDirectory(root, dir.absoluteFilePath(entry));
}
else if(info.isFile())
{
files.append(path);
files.append({path, root});
}
};
for(const QString &path : paths)
scanDirectory(path);
scanDirectory(path, path);
return files;
}