┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistview.cpp
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2020-10-31 12:40:57 +0100
committerNate Graham <[email protected]>2020-11-03 02:21:43 +0000
commitffe01ee8407559f46171bfea4aa6f21e37f945fb (patch)
tree42d74be99c12a007d8d95c12a55081671ee9777c /src/kitemviews/kfileitemlistview.cpp
parent5e9a869a39d1d91aae85b6dbbd09d475f9612f43 (diff)
FolderPanel: prevents scanning directory tree recursively
KFileItemListView contents are periodically scanned by KFileItemModelRolesUpdater. It uses then KDirectoryContentsCounter to scan directories to determine their size possibly recursively. Introduce a scanDirectories setting to disable directory scanning by KFileItemModelRolesUpdater. BUG: 426617 FIXED-IN: 20.08.3
Diffstat (limited to 'src/kitemviews/kfileitemlistview.cpp')
-rw-r--r--src/kitemviews/kfileitemlistview.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp
index 6086eb8a2..9833b395f 100644
--- a/src/kitemviews/kfileitemlistview.cpp
+++ b/src/kitemviews/kfileitemlistview.cpp
@@ -39,7 +39,8 @@ KFileItemListView::KFileItemListView(QGraphicsWidget* parent) :
KStandardItemListView(parent),
m_modelRolesUpdater(nullptr),
m_updateVisibleIndexRangeTimer(nullptr),
- m_updateIconSizeTimer(nullptr)
+ m_updateIconSizeTimer(nullptr),
+ m_scanDirectories(true)
{
setAcceptDrops(true);
@@ -117,6 +118,19 @@ qlonglong KFileItemListView::localFileSizePreviewLimit() const
return m_modelRolesUpdater ? m_modelRolesUpdater->localFileSizePreviewLimit() : 0;
}
+void KFileItemListView::setScanDirectories(bool enabled)
+{
+ m_scanDirectories = enabled;
+ if (m_modelRolesUpdater) {
+ m_modelRolesUpdater->setScanDirectories(m_scanDirectories);
+ }
+}
+
+bool KFileItemListView::scanDirectories()
+{
+ return m_scanDirectories;
+}
+
QPixmap KFileItemListView::createDragPixmap(const KItemSet& indexes) const
{
if (!model()) {
@@ -247,6 +261,7 @@ void KFileItemListView::onModelChanged(KItemModelBase* current, KItemModelBase*
if (current) {
m_modelRolesUpdater = new KFileItemModelRolesUpdater(static_cast<KFileItemModel*>(current), this);
m_modelRolesUpdater->setIconSize(availableIconSize());
+ m_modelRolesUpdater->setScanDirectories(scanDirectories());
applyRolesToModel();
}