]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontainer.cpp
Update dragCursor while dragging
[dolphin.git] / src / kitemviews / kitemlistcontainer.cpp
index 2deba5466d1ed3948a8ce3371041c8bdcabaec3c..6279b15a994baf8f0f7579f57aa47a981ccf584d 100644 (file)
@@ -1,8 +1,7 @@
 /***************************************************************************
  *   Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com>             *
  *                                                                         *
- *   Based on the Itemviews NG project from Trolltech Labs:                *
- *   http://qt.gitorious.org/qt-labs/itemviews-ng                          *
+ *   Based on the Itemviews NG project from Trolltech Labs                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -27,6 +26,7 @@
 #include "private/kitemlistsmoothscroller.h"
 
 #include <QApplication>
+#include <QFontMetrics>
 #include <QGraphicsScene>
 #include <QGraphicsView>
 #include <QScrollBar>
@@ -261,7 +261,14 @@ void KItemListContainer::updateScrollOffsetScrollBar()
     if (view->scrollOrientation() == Qt::Vertical) {
         smoothScroller = m_verticalSmoothScroller;
         scrollOffsetScrollBar = verticalScrollBar();
-        singleStep = view->itemSizeHint().height();
+
+        // Don't scroll super fast when using a wheel mouse:
+        // We want to consider one "line" to be the text label which has a
+        // roughly fixed height rather than using the height of the icon which
+        // may be very tall
+        const QFontMetrics metrics(font());
+        singleStep = metrics.height() * QApplication::wheelScrollLines();
+
         // We cannot use view->size().height() because this height might
         // include the header widget, which is not part of the scrolled area.
         pageStep = view->verticalPageStep();