Salman Alshamrani
78cd093a47
Fix broken input handling with structural changes
2025-02-06 02:44:40 -05:00
Salman Alshamrani
134e62c39a
Abstractify beatmap panel piece and update all panel implementations
2025-02-06 02:21:34 -05:00
Salman Alshamrani
ecc3aeadf2
Make BeatmapPanel
appear hovered on keyboard selection even if selected
...
Was an intentional choice but appeared weird to others instead. The feedback itself probably needs changing.
2025-02-05 22:40:30 -05:00
Salman Alshamrani
aab4a79ce4
Push all beatmap panels to hide their tails
2025-02-05 22:37:03 -05:00
Salman Alshamrani
72a62b70c4
Simplify some code
2025-02-05 22:25:39 -05:00
Salman Alshamrani
467ea91105
Fix basic code quality issues
2025-02-05 21:47:15 -05:00
Salman Alshamrani
f9962f95f0
Implement group panel design
2025-02-05 21:45:34 -05:00
Salman Alshamrani
c94d11b7fe
Add beatmap carousel to new song select screen
2025-02-05 08:16:41 -05:00
Salman Alshamrani
696366f8cb
Implement beatmap "standalone" panel design
2025-02-05 08:16:41 -05:00
Salman Alshamrani
04d8bafdce
Implement beatmap difficulty panel design
2025-02-05 08:16:41 -05:00
Salman Alshamrani
206b5c93c0
Implement beatmap set header design
2025-02-05 08:16:41 -05:00
Salman Alshamrani
2d75030e36
Change default carousel item header to 50px
2025-02-05 07:17:27 -05:00
Salman Alshamrani
c389dbc711
Extend panel input area to cover gaps
2025-02-05 05:20:26 -05:00
Salman Alshamrani
fc5832ce67
Support variable spacing between carousel items
2025-02-05 05:20:26 -05:00
Dean Herbert
599b59cb14
Add expanded state to sample drawable representations
2025-02-04 18:06:16 +09:00
Dean Herbert
58560f8acf
Add tracking of expansion states for groups and sets
2025-02-04 17:51:51 +09:00
Bartłomiej Dach
6e59cab928
Merge pull request #31764 from peppy/beatmap-carousel-v2-grouping
...
Add group support to beatmap carousel v2
2025-02-04 08:13:54 +01:00
Dean Herbert
e454fa558c
Adjust group traversal logic to handle cases where keyboard selection redirects
2025-02-04 02:55:59 +09:00
Dean Herbert
b433eef138
Remove redundant conditional check
2025-02-04 02:41:39 +09:00
Dean Herbert
c7780c9fdc
Refactor how grouping is performed
2025-02-03 20:40:52 +09:00
Salman Alshamrani
c587958f38
Apply depth ordering relative to selected item
2025-02-03 02:34:29 -05:00
Dean Herbert
6a18d18feb
Fix null handling when no items are populated but a selection is made
2025-02-03 02:39:45 +09:00
Dean Herbert
9c34819ff4
Add test coverage for grouped selection
2025-02-03 02:39:45 +09:00
Dean Herbert
645c26ca19
Simplify keyboard traversal logic
2025-02-03 02:24:27 +09:00
Dean Herbert
d74939e6e9
Fix backwards traversal of groupings and allow toggling groups without updating selection
2025-02-03 02:24:27 +09:00
Dean Herbert
764f799dcb
Improve selection flow using early exit and invalidation
2025-02-03 02:24:27 +09:00
Dean Herbert
d5dc55149d
Add initial difficulty grouping support
2025-02-03 02:24:27 +09:00
Dean Herbert
3cde11ab77
Re-enable masking by default
2025-02-03 02:24:26 +09:00
Bartłomiej Dach
55ab3c72f6
Remove unused field
2025-01-24 15:15:50 +01:00
Dean Herbert
82c5f37c2c
Remove selection animation on set panel
2025-01-24 22:45:08 +09:00
Dean Herbert
175eb82ccf
Split out beatmaps and set panels into two separate classes
2025-01-24 20:10:41 +09:00
Dean Herbert
0164a2e4dc
Move pool item preparation / cleanup duties to Carousel
2025-01-24 20:10:41 +09:00
Dean Herbert
9366bfbf0d
Move activation drawable flow portion to ICarouselPanel
2025-01-24 18:40:48 +09:00
Dean Herbert
92429b2ed9
Adjust comments on ICarouselPanel
to imply external use
2025-01-24 18:34:04 +09:00
Dean Herbert
f4270ab3b9
Simplify selection handling logic
2025-01-23 23:58:51 +09:00
Dean Herbert
d5369d3508
Add regions to BeatmapCarousel
2025-01-23 23:53:09 +09:00
Dean Herbert
0716b73d2a
ActivateSelection
-> TryActivateSelection
2025-01-23 22:44:39 +09:00
Dean Herbert
2feab31426
Adjust inline commentary based on review feedback
2025-01-23 22:41:20 +09:00
Dean Herbert
ffca90779f
Fix sort direction being flipped
2025-01-23 18:51:24 +09:00
Dean Herbert
2f94456a06
Add selection and activation flow
2025-01-23 18:51:24 +09:00
Dean Herbert
ecef5e5d71
Add set-difficulty tracking in BeatmapCarouselFilterGrouping
...
Rather than tracking inside individual items, let's just maintain a
single dictionary which is refreshed every time we regenerate filters.
2025-01-23 18:48:44 +09:00
Dean Herbert
980f6cf18e
Make CarouselItem
sealed
and remove BeatmapCarouselItem
concept
...
Less abstraction is better. As far as I can tell, we don't need a custom
model for this. If there's any tracking to be done, it should be done
within `BeatmapCarousel`'s implementation (or a filter).
2025-01-23 18:48:44 +09:00
Dean Herbert
c67c0a7fc0
Move Selected
status to drawables
...
Basically, I don't want bindables in `CarouselItem`. It means there
needs to be a bind-unbind process on pooling. By moving these to the
drawable and just updating every frame, we can simplify things a lot.
2025-01-23 18:48:43 +09:00
Dean Herbert
ded1d9f019
displayedCarouselItems
-> carouselItems
2025-01-23 15:58:35 +09:00
Dean Herbert
d526835627
Only show loading when doing a user triggered filter
2025-01-23 15:51:54 +09:00
Dean Herbert
6ac2dbc818
Reorder carousel methods into logical regions
2025-01-23 15:50:57 +09:00
Dean Herbert
6c27e87714
Add back explicit right click handling of carousel absolute scrolling
2025-01-21 17:24:42 +09:00
Dean Herbert
43b54623d9
Add required padding on either side of panels so selection can remain centered
2025-01-17 18:08:20 +09:00
Dean Herbert
54f9cb7f68
Add overlapping spacing support
2025-01-17 18:07:54 +09:00
Dean Herbert
a1c5fad6d4
Add curvature to new carousel implementation
2025-01-17 18:07:54 +09:00