diff options
| author | Aleksandr Borodetckii <[email protected]> | 2025-06-02 04:01:06 +0300 |
|---|---|---|
| committer | Aleksandr Borodetckii <[email protected]> | 2025-06-12 09:27:56 +0000 |
| commit | 8e3addb7e73122a4c89ef347b03f714ff75a253a (patch) | |
| tree | 47fec9418822b71c1ff7d192f7fedba07a140754 /src/kitemviews/kstandarditemlistview.cpp | |
| parent | e3fea512699ecfefc2aa7034bae0fc29803fbb9b (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/kstandarditemlistview.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistview.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/kitemviews/kstandarditemlistview.cpp b/src/kitemviews/kstandarditemlistview.cpp index a4e7c3edd..0d57388f3 100644 --- a/src/kitemviews/kstandarditemlistview.cpp +++ b/src/kitemviews/kstandarditemlistview.cpp @@ -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) |
