diff options
| author | Méven Car <[email protected]> | 2020-10-31 12:40:57 +0100 |
|---|---|---|
| committer | Nate Graham <[email protected]> | 2020-11-03 02:21:43 +0000 |
| commit | ffe01ee8407559f46171bfea4aa6f21e37f945fb (patch) | |
| tree | 42d74be99c12a007d8d95c12a55081671ee9777c /src/kitemviews/kfileitemlistview.cpp | |
| parent | 5e9a869a39d1d91aae85b6dbbd09d475f9612f43 (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.cpp | 17 |
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(); } |
