Add support for traversing and toggling expanded state of song select groups
This adds back some keys which users have learned to depend on (and I have forgotten ever existed).
- Shift + Left / Right now allows traversing between groups
- Shift + Enter now toggles the expanded state for the current group
This also changes the behaviour such that when you open a group which contains the currently selected beatmap, keyboard selection (and scroll target) will be transferred to it.
https://github.com/user-attachments/assets/6d337beb-1d93-46e1-82fc-36dfecfc0246
Closes #33599. Closes #33617.
Would you be okay with the flash occurring in both directions (consistently) but no expansion changes happening? I think that would be my preferred behaviour.
No real preference so long as it's consistent.
I've fixed the issues pointed out. This changed some already tested behaviour, which has been updated. In the cases you found, there will now be no selection change.
Some weird behaviour with filtering here still:
https://github.com/user-attachments/assets/8021346b-b08f-4ada-8487-0cae90aa1346
Steps are roughly:
- Start with the globally selected beatmap in one group
- Apply filter wherein the globally selected beatmap is not in results
- Start traversing groups
- Unapply filter
- Traverse group in any direction
- Traversal will continue from the group containing the globally selected beatmap rather than the group you were last on with the filter applied
Steps are roughly:
Start with the globally selected beatmap in one group Apply filter wherein the globally selected beatmap is not in results Start traversing groups Unapply filter Traverse group in any direction Traversal will continue from the group containing the globally selected beatmap rather than the group you were last on with the filter applied
What's your expectation here? Should keyboard selection not reset in this scenario? If so, it's going to be bundled into the absolute CLUSTERFUCK that is this issue which i'm attempting to fix here (will as far as I can tell will already solve this case, see changes in SelectedItem_Set which avoid keyboard selection being changed on noop change).
Given how edge case this is, I think we should wait for a user to raise it and not address here. As I know it's going to be a complicated one to resolve.
Given how edge case this is, I think we should wait for a user to raise it and not address here. As I know it's going to be a complicated one to resolve.
I'm okay ignoring it until raised by someone else, sure.