┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontainer.cpp
diff options
context:
space:
mode:
authorAleksandr Borodetckii <[email protected]>2025-06-02 04:01:06 +0300
committerAleksandr Borodetckii <[email protected]>2025-06-12 09:27:56 +0000
commit8e3addb7e73122a4c89ef347b03f714ff75a253a (patch)
tree47fec9418822b71c1ff7d192f7fedba07a140754 /src/kitemviews/kitemlistcontainer.cpp
parente3fea512699ecfefc2aa7034bae0fc29803fbb9b (diff)
DolphinView: Conform to global scroll speed
One scroll with the mouse wheel is supposed to scroll the view by QApplication::wheelScrollLines, however previous to this commit Dolphin scrolled the view by QApplication::wheelScrollLines^2 instead, which was wrong and way too much. This commit fixes this by defining one line height as the height of the current default font. This value is multiplied by QApplication::wheelScrollLines to determine the scroll amount per mouse wheel scroll. In details view mode however, where there really are rows to go by, this commit makes sure to always scroll by full rows. The number of rows to scroll is determined by rounding up from the scroll amount used in the other view modes. Co-authored-by: Felix Ernst
Diffstat (limited to 'src/kitemviews/kitemlistcontainer.cpp')
-rw-r--r--src/kitemviews/kitemlistcontainer.cpp10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp
index 128140e2e..3ec56e5f1 100644
--- a/src/kitemviews/kitemlistcontainer.cpp
+++ b/src/kitemviews/kitemlistcontainer.cpp
@@ -286,7 +286,6 @@ void KItemListContainer::updateScrollOffsetScrollBar()
KItemListSmoothScroller *smoothScroller = nullptr;
QScrollBar *scrollOffsetScrollBar = nullptr;
- int singleStep = 0;
int pageStep = 0;
int maximum = 0;
if (view->scrollOrientation() == Qt::Vertical) {
@@ -296,13 +295,6 @@ void KItemListContainer::updateScrollOffsetScrollBar()
}
scrollOffsetScrollBar = verticalScrollBar();
- // 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();
@@ -318,11 +310,11 @@ void KItemListContainer::updateScrollOffsetScrollBar()
return;
}
scrollOffsetScrollBar = horizontalScrollBar();
- singleStep = view->itemSize().width();
pageStep = view->size().width();
maximum = qMax(0, int(view->maximumScrollOffset() - view->size().width()));
}
+ const int singleStep = view->scrollSingleStep();
const int value = view->scrollOffset();
if (smoothScroller->requestScrollBarUpdate(maximum)) {
const bool updatePolicy = (scrollOffsetScrollBar->maximum() > 0 && maximum == 0) || horizontalScrollBarPolicy() == Qt::ScrollBarAlwaysOn;