From eda05b12fbe4c3250727ee005a075374ccdf83e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9ven=20Car?= Date: Tue, 19 May 2020 07:52:26 +0200 Subject: [PATCH] KDirectoryContentsCounter: don't schedule scanning a folder already in the Queue Use a QLinkedList to check for presence in the queue. merge request !2 --- src/kitemviews/private/kdirectorycontentscounter.cpp | 6 ++++-- src/kitemviews/private/kdirectorycontentscounter.h | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/kitemviews/private/kdirectorycontentscounter.cpp b/src/kitemviews/private/kdirectorycontentscounter.cpp index a19bce8b3b..a0ed8c27ca 100644 --- a/src/kitemviews/private/kdirectorycontentscounter.cpp +++ b/src/kitemviews/private/kdirectorycontentscounter.cpp @@ -104,7 +104,7 @@ void KDirectoryContentsCounter::slotResult(const QString& path, int count, long } if (!m_queue.isEmpty()) { - startWorker(m_queue.dequeue()); + startWorker(m_queue.takeFirst()); } if (s_cache->contains(resolvedPath)) { @@ -175,7 +175,9 @@ void KDirectoryContentsCounter::startWorker(const QString& path) } if (m_workerIsBusy) { - m_queue.enqueue(path); + if (!m_queue.contains(path)) { + m_queue.append(path); + } } else { KDirectoryContentsCounterWorker::Options options; diff --git a/src/kitemviews/private/kdirectorycontentscounter.h b/src/kitemviews/private/kdirectorycontentscounter.h index 0c900ec644..287227bffb 100644 --- a/src/kitemviews/private/kdirectorycontentscounter.h +++ b/src/kitemviews/private/kdirectorycontentscounter.h @@ -23,7 +23,7 @@ #include "kdirectorycontentscounterworker.h" -#include +#include #include #include @@ -72,7 +72,7 @@ private: private: KFileItemModel* m_model; - QQueue m_queue; + QLinkedList m_queue; static QThread* m_workerThread;