]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kstandarditemlistview.cpp
DolphinView: Conform to global scroll speed
[dolphin.git] / src / kitemviews / kstandarditemlistview.cpp
index f94aed0b5296fdc5f66b0ee5b33b9cef1262eb17..0d57388f3a509b4b8e2b8151287f7fa691180f54 100644 (file)
@@ -4,6 +4,8 @@
  * SPDX-License-Identifier: GPL-2.0-or-later
  */
 
+#include <QApplication>
+
 #include "kstandarditemlistview.h"
 
 #include "kstandarditemlistwidget.h"
@@ -110,6 +112,17 @@ bool KStandardItemListView::itemLayoutSupportsItemExpanding(ItemLayout layout) c
     return layout == DetailsLayout;
 }
 
+qreal KStandardItemListView::scrollSingleStep() const
+{
+    if (itemLayout() == DetailsLayout) {
+        // We want each scroll in details view mode to move by some number of complete rows.
+        const int rowsPerFullScroll = qCeil((KItemListView::scrollSingleStep() * QApplication::wheelScrollLines()) / itemSize().height());
+        return (rowsPerFullScroll * itemSize().height()) / QApplication::wheelScrollLines();
+    }
+
+    return KItemListView::scrollSingleStep();
+}
+
 void KStandardItemListView::onItemLayoutChanged(ItemLayout current, ItemLayout previous)
 {
     Q_UNUSED(current)
@@ -179,3 +192,5 @@ void KStandardItemListView::updateLayoutOfVisibleItems()
         }
     }
 }
+
+#include "moc_kstandarditemlistview.cpp"