diff options
| -rw-r--r-- | plugin/src/Caelestia/Models/filesystemmodel.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/plugin/src/Caelestia/Models/filesystemmodel.cpp b/plugin/src/Caelestia/Models/filesystemmodel.cpp index b7889f0..536f14b 100644 --- a/plugin/src/Caelestia/Models/filesystemmodel.cpp +++ b/plugin/src/Caelestia/Models/filesystemmodel.cpp @@ -276,9 +276,13 @@ void FileSystemModel::updateEntriesForDir(const QString& dir) { const auto showHidden = m_showHidden; const auto filter = m_filter; const auto nameFilters = m_nameFilters; - const auto oldEntries = m_entries; const auto baseDir = m_dir; + QSet<QString> oldPaths; + for (const auto& entry : m_entries) { + oldPaths << entry->path(); + } + const auto future = QtConcurrent::run([=](QPromise<QPair<QSet<QString>, QSet<QString>>>& promise) { const auto flags = recursive ? QDirIterator::Subdirectories : QDirIterator::NoIteratorFlags; @@ -336,11 +340,6 @@ void FileSystemModel::updateEntriesForDir(const QString& dir) { newPaths.insert(path); } - QSet<QString> oldPaths; - for (const auto& entry : oldEntries) { - oldPaths.insert(entry->path()); - } - if (promise.isCanceled() || newPaths == oldPaths) { return; } |