]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/klistview.cpp
Allow to sort by rating, which can be quite useful in combination with the "Show...
[dolphin.git] / src / klistview.cpp
index 1cba47b1bd44c2c8e785beaa0f5b03bf359a3d4f..0c65b9141f4409f471dcfa89f9f8ba9687d6b36c 100644 (file)
@@ -21,7 +21,8 @@
 #include "klistview.h"
 #include "klistview_p.h"
 
-#include <math.h> // trunc
+#include <math.h> // trunc on C99 compliant systems
+#include <kdefakes.h> // trunc for not C99 compliant systems
 
 #include <QApplication>
 #include <QPainter>
@@ -385,6 +386,9 @@ void KListView::Private::updateScrollbars()
 {
     int lastItemBottom = cachedRectIndex(lastIndex).bottom() +
                            listView->spacing() - listView->viewport()->height();
+
+    listView->verticalScrollBar()->setSingleStep(listView->viewport()->height() / 10);
+    listView->verticalScrollBar()->setPageStep(listView->viewport()->height());
     listView->verticalScrollBar()->setRange(0, lastItemBottom);
 }
 
@@ -482,6 +486,10 @@ void KListView::setItemCategorizer(KItemCategorizer *itemCategorizer)
     {
         rowsInserted(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
     }
+    else
+    {
+        updateGeometries();
+    }
 }
 
 QModelIndex KListView::indexAt(const QPoint &point) const
@@ -810,6 +818,13 @@ void KListView::leaveEvent(QEvent *event)
     viewport()->update();
 }
 
+void KListView::startDrag(Qt::DropActions supportedActions)
+{
+    d->mouseButtonPressed = false;
+
+    QListView::startDrag(supportedActions);
+}
+
 void KListView::rowsInserted(const QModelIndex &parent,
                              int start,
                              int end)
@@ -955,11 +970,11 @@ void KListView::updateGeometries()
 
 void KListView::slotSortingRoleChanged()
 {
-    if (d->proxyModel)
+    if ((viewMode() == KListView::IconMode) && d->proxyModel &&
+        d->itemCategorizer)
     {
         // Force the view to update all elements
-        rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() -
-                                                                             1);
+        rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
     }
 }