From 064ef4cfeb7307cae1cfbc640ca3c47e8032f365 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Sat, 23 May 2020 17:33:01 +0200 Subject: Update IFileTree implementations following uibase changes. --- src/qdirfiletree.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/qdirfiletree.cpp') diff --git a/src/qdirfiletree.cpp b/src/qdirfiletree.cpp index 5570060a..e80c7127 100644 --- a/src/qdirfiletree.cpp +++ b/src/qdirfiletree.cpp @@ -14,9 +14,7 @@ std::shared_ptr QDirFileTree::makeTree(QDir directory) { /** * */ -QDirFileTree::QDirFileTree(std::shared_ptr parent, QDir directory) : FileTreeEntry(parent, directory.dirName()), IFileTree(), qDir(directory) { - qDir.setFilter(qDir.filter() | QDir::NoDotAndDotDot); -} +QDirFileTree::QDirFileTree(std::shared_ptr parent, QDir directory) : FileTreeEntry(parent, directory.dirName()), IFileTree(), qDir(directory) { } /** * No mutable operations allowed. @@ -24,21 +22,22 @@ QDirFileTree::QDirFileTree(std::shared_ptr parent, QDir directo bool QDirFileTree::beforeReplace(IFileTree const* dstTree, FileTreeEntry const* destination, FileTreeEntry const* source) { return false; } bool QDirFileTree::beforeInsert(IFileTree const* entry, FileTreeEntry const* name) { return false; } bool QDirFileTree::beforeRemove(IFileTree const* entry, FileTreeEntry const* name) { return false; } -std::shared_ptr QDirFileTree::makeFile(std::shared_ptr parent, QString name, QDateTime time) const { return nullptr; } +std::shared_ptr QDirFileTree::makeFile(std::shared_ptr parent, QString name) const { return nullptr; } std::shared_ptr QDirFileTree::makeDirectory(std::shared_ptr parent, QString name) const { return nullptr; } -void QDirFileTree::doPopulate(std::shared_ptr parent, std::vector>& entries) const { - QDirIterator iter(qDir); - while (iter.hasNext()) { - QString name = iter.next(); - QFileInfo info = iter.fileInfo(); +bool QDirFileTree::doPopulate(std::shared_ptr parent, std::vector>& entries) const { + auto infoList = qDir.entryInfoList(qDir.filter() | QDir::NoDotAndDotDot, QDir::Name | QDir::DirsFirst | QDir::IgnoreCase); + for (auto& info : infoList) { if (info.isDir()) { entries.push_back(std::shared_ptr(new QDirFileTree(parent, QDir(info.absoluteFilePath())))); } else { - entries.push_back(createFileEntry(parent, info.fileName(), info.fileTime(QFileDevice::FileModificationTime))); + entries.push_back(createFileEntry(parent, info.fileName())); } } + + // Vector is already sorted: + return true; } std::shared_ptr QDirFileTree::doClone() const { -- cgit v1.3.1