]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kfileitemlistview.cpp
Make calls to resolveNextPendingRoles and resolveNextSortRole delayed
[dolphin.git] / src / kitemviews / kfileitemlistview.cpp
index 14547fc7be31c1b70db5aee17581902c136f7dd8..70ce11b1fbaad3ad9c749533945f423aef425f35 100644 (file)
@@ -66,8 +66,6 @@ KFileItemListView::KFileItemListView(QGraphicsWidget* parent) :
 
 KFileItemListView::~KFileItemListView()
 {
-    delete m_modelRolesUpdater;
-    m_modelRolesUpdater = 0;
 }
 
 void KFileItemListView::setPreviewsShown(bool show)
@@ -121,6 +119,9 @@ QPixmap KFileItemListView::createDragPixmap(const QSet<int>& indexes) const
 
     const int itemCount = indexes.count();
     Q_ASSERT(itemCount > 0);
+    if (itemCount == 1) {
+        return KItemListView::createDragPixmap(indexes);
+    }
 
     // If more than one item is dragged, align the items inside a
     // rectangular grid. The maximum grid size is limited to 5 x 5 items.
@@ -322,6 +323,7 @@ void KFileItemListView::updateVisibleIndexRange()
 
     const int index = firstVisibleIndex();
     const int count = lastVisibleIndex() - index + 1;
+    m_modelRolesUpdater->setMaximumVisibleItems(maximumVisibleItems());
     m_modelRolesUpdater->setVisibleIndexRange(index, count);
 
     if (m_updateIconSizeTimer->isActive()) {
@@ -400,6 +402,7 @@ void KFileItemListView::applyRolesToModel()
     roles.insert("iconName");
     roles.insert("text");
     roles.insert("isDir");
+    roles.insert("isLink");
     if (supportsItemExpanding()) {
         roles.insert("isExpanded");
         roles.insert("isExpandable");