Qt: Add click-and-drag scrolling to list and grid views#14193
Qt: Add click-and-drag scrolling to list and grid views#14193jasaaved wants to merge 2 commits intoPCSX2:masterfrom
Conversation
User can now click and drag through the menus using the left mouse button or touch.
3e142e0 to
5a73ef8
Compare
kamfretoz
left a comment
There was a problem hiding this comment.
Overall it worked well, but i would highly suggest having it be toggle-able instead of always on, because it makes things harder to be clicked if you move the mouse fast enough (or you are using high DPI mouse).
You can put the button next to the List/Grid view and the show title button.
Demo:
2026-03-26.22-44-02.mp4
Added a button that turns click and drag scrolling next to the show titles button.
|
The left-click-and-drag UX is very odd and unusual IMHO. I can't think of another app that does that, at least on macOS (which is my primary OS). |
The toggle button? I honestly haven't seen one either. But I added it because of the request, but I didn't know a high DPI mouse could be an issue. |
|
Not the toggle button. I'm referring to this entire feature. Reacting to touch events (and scrolling the view) makes sense of course, but that seems to be already working out of the box (without QScroller). My objection is on the use of |
|
Have you been able to test it with a touch device? |
Unless I'm doing something wrong, I can only scroll using the scroll bar via touch. Putting aside Big Picture Mode. |
|
Yes, scrolling via touchpad works fine on macOS (without this PR). I have a Linux laptop with a touch screen but I'm unable to test on it right now. What platform are you on? In any case, even if QScroller is needed for touch screens, you should limit it to |
|
Ah I see. Sometimes I play on a handheld device. A steam deck or a Legion Go 2. Touchpad controls aren't the same as touch screen controls. I can only scroll using the scroll bar via touch. Well, I probably can scroll other ways using different finger gestures, but I want 1 finger scrolling. In theory, left mouse button gets converted to touch gesture anyways or vice versa. But I want this tested. The real goal for this PR, it will make touch scrolling feel like scrolling through your library on a steam deck via touch. I doubt anyone will actually use the mouse version but it's there if wanted. |
I was able to clone my branch on my legion go 2. At least on Windows, LeftMouseButtonGesture works the same as TouchGesture. I can now scroll through my library with touch with just 1 finger. With the current live version, I can only scroll with using the scroll bar or using two fingers within the game list window with touch. |
So, can we use TouchGesture in the |
I tested TouchGesture on a separate branch. It works just as well. The problem with TouchGesture is that it is OS dependent on what it does. On Windows it requires a touch screen. I think Linux also requires a touch screen too, but I'm not sure. MacOS should work fine with a trackpad, but I'm not sure about that either. I can push that change, but that would mean left mouse button click-and-drag scrolling will stop working and some may want that feature. LeftMouseButtonGesture should work on both mouse and touch on all OS because Qt internally maps touch events to mouse events by default, but I'll take suggestions on which is the best one to use. |
Description of Changes
Adds click-and-drag scrolling to the game list table view and cover/grid view using Qt's QScroller with LeftMouseButtonGesture.
Rationale Behind Changes
Improves usability, especially on touch-enabled devices or for users who prefer click-and-drag scrolling over using the scrollbar or mouse wheel when navigating large game libraries.
Suggested Testing Steps
Did you use AI to help find, test, or implement this issue or feature?
Yes. I used AI to learn how Qt's QScroller API works.