Bug 427967 - Support fast scrolling by holding shift key while scrolling
Summary: Support fast scrolling by holding shift key while scrolling
Status: RESOLVED FIXED
Alias: None
Product: Elisa
Classification: Applications
Component: general (show other bugs)
Version: 20.08.2
Platform: Arch Linux Linux
: NOR wishlist
Target Milestone: ---
Assignee: Matthieu Gallien
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-10-19 09:56 UTC by Frank Steinmetzger
Modified: 2020-11-12 22:43 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 20.12


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Frank Steinmetzger 2020-10-19 09:56:31 UTC
Dear devs,

after reading so much about Elisa in Nate’s blog, I tried it out the other day. I noticed very quickly that the views (playlist, central filter view) do not support shift scrolling, i.e. I press the shift key, scroll up or down and the view then should scroll by a whole page. With 40000 files in my collection, this would be a very helpful feature.

Kind regards
Comment 1 Nate Graham 2020-10-21 03:28:46 UTC
> after reading so much about Elisa in Nate’s blog, I tried it out the other day.
Yesssssss excellent, that was the idea. :)

Anyway your idea seems sensible! I know Okular does this too.
Comment 2 Nate Graham 2020-10-29 18:49:20 UTC
The native QQC2 scrollview handles this automatically, but in Elisa we're overriding it with our ScrollHelper thing, which breaks it.

So our options are to:
1. Re-implement the fast scrolling with shift key held down behavior in ScrollHelper
2. Remove ScrollHelper and go back to the native scrollviews

personally I prefer #2. Whatever problems ScrollHelper was solving should IMO be solved upstream with Qt patches.
Comment 3 Bug Janitor Service 2020-11-11 20:52:55 UTC
A possibly relevant merge request was started @ https://invent.kde.org/multimedia/elisa/-/merge_requests/183
Comment 4 Matthieu Gallien 2020-11-12 22:02:29 UTC
Git commit 3b80b0001239f8c6a35f95ff940e6ba596075310 by Matthieu Gallien, on behalf of Nate Graham.
Committed on 12/11/2020 at 20:49.
Pushed by mgallien into branch 'release/20.12'.

Replace homemade ScrollHelper with standard ScrollViews to hold view items

We created the ScrollHelper component to fix scrolling with touchpads,
which is quite terrible out of the box with QML's default flickables.

However this solution had some drawbacks:

- It broke touch scrolling
- It broke fast scrolling by holding down the shift key while scrolling
- It essentially re-wrote scroll handling locally, which is fragile
- It required a bunch of extra code to handle scrollbar visibility which
  introduced various minor visual bugs in a few places

In addition, this solution was not necessary since we can get the
same result by putting views inside ScrollView components, which is a
100% supported and standard paradigm. Doing so preserves the nice
touchpad scrolling we already have but fixes all of the above items
automatically.
Related: bug 417859
FIXED-IN: 20.12

M  +0    -1    src/CMakeLists.txt
M  +23   -31   src/qml/GridBrowserView.qml
M  +28   -36   src/qml/ListBrowserView.qml
M  +18   -26   src/qml/MediaTrackMetadataView.qml
M  +113  -120  src/qml/PlayListBasicView.qml
M  +0    -3    src/qml/PlayListEntry.qml
D  +0    -105  src/qml/ScrollHelper.qml
M  +80   -82   src/qml/SimplePlayListView.qml
M  +36   -52   src/qml/ViewSelector.qml
M  +0    -1    src/resources.qrc

https://invent.kde.org/multimedia/elisa/commit/3b80b0001239f8c6a35f95ff940e6ba596075310
Comment 5 Nate Graham 2020-11-12 22:43:54 UTC
Git commit b1931eb86c224c7cdeb1c78fdc4112c2142212d6 by Nate Graham.
Committed on 12/11/2020 at 22:43.
Pushed by ngraham into branch 'master'.

Replace homemade ScrollHelper with standard ScrollViews to hold view items

We created the ScrollHelper component to fix scrolling with touchpads,
which is quite terrible out of the box with QML's default flickables.

However this solution had some drawbacks:

- It broke touch scrolling
- It broke fast scrolling by holding down the shift key while scrolling
- It essentially re-wrote scroll handling locally, which is fragile
- It required a bunch of extra code to handle scrollbar visibility which
  introduced various minor visual bugs in a few places

In addition, this solution was not necessary since we can get the
same result by putting views inside ScrollView components, which is a
100% supported and standard paradigm. Doing so preserves the nice
touchpad scrolling we already have but fixes all of the above items
automatically.
Related: bug 417859
FIXED-IN: 20.12

M  +0    -1    src/CMakeLists.txt
M  +23   -31   src/qml/GridBrowserView.qml
M  +28   -36   src/qml/ListBrowserView.qml
M  +18   -26   src/qml/MediaTrackMetadataView.qml
M  +113  -120  src/qml/PlayListBasicView.qml
M  +0    -3    src/qml/PlayListEntry.qml
D  +0    -105  src/qml/ScrollHelper.qml
M  +80   -82   src/qml/SimplePlayListView.qml
M  +36   -52   src/qml/ViewSelector.qml
M  +0    -1    src/resources.qrc

https://invent.kde.org/multimedia/elisa/commit/b1931eb86c224c7cdeb1c78fdc4112c2142212d6