From ae587d2682992644217c58968c6c771a1f2571f7 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Wed, 2 Oct 2013 19:08:39 +0200 Subject: Save memory and time in KFileItemModel by lazy-loading the "ItemData" To reduce unnecessary memory comsumption and CPU usage, we only fill the QHash if the methods data(int) or setData(int) are called for the corresponding index, or the data is necessary for sorting the model. According to my tests, this patch reduces the memory usage when loading a folder with 100,000 items by 17% in Icons View, and by 26% in Details View. REVIEW: 112725 --- src/kitemviews/kfileitemmodel.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/kitemviews/kfileitemmodel.h') diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index 841016138..50e3e326b 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -492,7 +492,11 @@ private: inline bool KFileItemModel::isChildItem(int index) const { - return m_requestRole[ExpandedParentsCountRole] && m_itemData.at(index)->values.value("expandedParentsCount").toInt() > 0; + if (m_itemData.at(index)->parent) { + return true; + } else { + return false; + } } #endif -- cgit v1.3.1