From 63b26cbf2c849f724b7e2f5c8f40f6883d6278e5 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Fri, 12 Jul 2013 08:27:04 +0200 Subject: Load unknown icons for items just before showing items in the view Rather than loading many icons (without full mime type determination) in advance, we make sure that an item has an icon just before it is shown in the view. This makes sure that no "unknown" icons are shown unnecessarily, and saves some resources. REVIEW: 111396 --- src/kitemviews/kfileitemlistview.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/kitemviews/kfileitemlistview.cpp') diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index 70ce11b1f..2da238d7a 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -190,6 +190,22 @@ KItemListWidgetCreatorBase* KFileItemListView::defaultWidgetCreator() const return new KItemListWidgetCreator(); } +void KFileItemListView::initializeItemListWidget(KItemListWidget* item) +{ + KStandardItemListView::initializeItemListWidget(item); + + // Make sure that the item has an icon. + QHash data = item->data(); + if (!data.contains("iconName") && data["iconPixmap"].value().isNull()) { + Q_ASSERT(qobject_cast(model())); + KFileItemModel* fileItemModel = static_cast(model()); + + const KFileItem fileItem = fileItemModel->fileItem(item->index()); + data.insert("iconName", fileItem.iconName()); + item->setData(data, QSet() << "iconName"); + } +} + void KFileItemListView::onPreviewsShownChanged(bool shown) { Q_UNUSED(shown); -- cgit v1.3