]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinitemlistcontainer.cpp
Details view: Improve performance
[dolphin.git] / src / views / dolphinitemlistcontainer.cpp
index b6ab4642fcc2a753ff445004dfa5d63db427c4f6..e1be814c03ba776ccf54e1454f46cfd7d81519c2 100644 (file)
@@ -23,6 +23,8 @@
 #include "dolphin_detailsmodesettings.h"
 #include "dolphin_compactmodesettings.h"
 
+#include "dolphinfileitemlistwidget.h"
+
 #include <kitemviews/kfileitemlistview.h>
 #include <kitemviews/kfileitemmodel.h>
 #include <kitemviews/kitemlistcontroller.h>
@@ -45,6 +47,7 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister,
     controller()->setModel(new KFileItemModel(dirLister, this));
 
     m_fileItemListView = new KFileItemListView();
+    m_fileItemListView->setWidgetCreator(new KItemListWidgetCreator<DolphinFileItemListWidget>());    
     controller()->setView(m_fileItemListView);
 
     KItemListStyleOption option;
@@ -123,13 +126,13 @@ bool DolphinItemListContainer::previewsShown() const
     return m_fileItemListView->previewsShown();
 }
 
-void DolphinItemListContainer::setVisibleRoles(const QHash<QByteArray, int>& roles)
+void DolphinItemListContainer::setVisibleRoles(const QList<QByteArray>& roles)
 {
     m_fileItemListView->setVisibleRoles(roles);
     updateGridSize();
 }
 
-QHash<QByteArray, int> DolphinItemListContainer::visibleRoles() const
+QList<QByteArray> DolphinItemListContainer::visibleRoles() const
 {
     return m_fileItemListView->visibleRoles();
 }
@@ -186,11 +189,16 @@ void DolphinItemListContainer::setItemLayout(KFileItemListView::Layout layout)
 
     switch (layout) {
     case KFileItemListView::IconsLayout:
-    case KFileItemListView::DetailsLayout:
         m_fileItemListView->setScrollOrientation(Qt::Vertical);
+        m_fileItemListView->setHeaderShown(false);
         break;
     case KFileItemListView::CompactLayout:
         m_fileItemListView->setScrollOrientation(Qt::Horizontal);
+        m_fileItemListView->setHeaderShown(false);
+        break;
+    case KFileItemListView::DetailsLayout:
+        m_fileItemListView->setScrollOrientation(Qt::Vertical);
+        m_fileItemListView->setHeaderShown(true);
         break;
     default:
         Q_ASSERT(false);