Salman Alshamrani
092d80cf1b
Fix PanelBeatmapStandalone
not handling selection state
2025-02-19 10:20:04 -05:00
Dean Herbert
7e1984452f
Tidy up remaining common code
2025-02-18 16:52:19 +09:00
Dean Herbert
644fb29843
Fix input handling not matching latest master
logic
2025-02-18 16:52:18 +09:00
Dean Herbert
5de9584171
Move PanelXOffset
to init
property rather than ctor
...
Feels better to me.
2025-02-18 16:52:18 +09:00
Dean Herbert
88ec204d26
User inheritance to avoid Piece
structural nightmare
2025-02-18 16:52:18 +09:00
Dean Herbert
40cae4f0a5
Merge branch 'master' into carousel-v2-implement-designs
2025-02-18 15:49:34 +09:00
Dean Herbert
303961d101
Add drawable implementations of team logo
2025-02-14 17:39:21 +09:00
Dean Herbert
554884710c
Rename classes for better discoverability / grouping
2025-02-12 19:34:42 +09:00
Dean Herbert
151101be70
Mark Action
as init
only
2025-02-12 19:24:30 +09:00
Dean Herbert
3a0464299a
Remove unnecessary V2 suffixes
2025-02-12 19:22:57 +09:00
Dean Herbert
d8f3dbf988
Merge branch 'master' into carousel-v2-implement-designs
2025-02-07 19:37:06 +09:00
Bartłomiej Dach
a068d88b84
Merge pull request #31823 from peppy/carousel-v2-optimisation-pass
...
Refactor grouping to be much more efficient
2025-02-07 10:44:53 +01:00
Bartłomiej Dach
ae179c8feb
Merge pull request #31824 from peppy/carousel-v2-group-click-transfer-keyboard
...
Always transfer keyboard selection on activation
2025-02-07 10:12:10 +01:00
Dean Herbert
cf4b501214
Merge pull request #31804 from bdach/bss/api-setup
...
Add API request & response structures for beatmap submission
2025-02-07 17:43:38 +09:00
Dean Herbert
29b0b62ffa
Rename variables to something more sane
2025-02-07 17:39:38 +09:00
Dean Herbert
3da615481e
Change switch
to simple conditional for now
2025-02-07 17:38:24 +09:00
Dean Herbert
41c8f64806
Simplify naming of endpoints
2025-02-07 17:33:32 +09:00
Dean Herbert
c935c3154b
Always transfer keyboard selection on activation
2025-02-07 17:02:53 +09:00
Dean Herbert
9d979dc3f4
Refactor grouping to be much more efficient
2025-02-07 16:35:20 +09:00
Dean Herbert
50d880e2ae
Fix unnecessary BeatmapSet.Metadata
lookups
2025-02-07 16:09:36 +09:00
Dean Herbert
d73f275143
Don't inflate set / group panels for simplicity
2025-02-07 15:15:59 +09:00
Dean Herbert
1cf375e329
Merge branch 'master' into carousel-v2-spacing
2025-02-07 14:34:59 +09:00
Bartłomiej Dach
91bc23e39e
Merge pull request #31801 from peppy/carousel-v2-artist-grouping
...
Add support for grouping by artist to beatmap carousel v2
2025-02-06 13:13:35 +01:00
Dean Herbert
cb42ef95c5
Add invalidation on draw size change in beatmap carousel v2
...
Matching old implementation.
2025-02-06 17:48:42 +09:00
Dean Herbert
33035f0206
Merge branch 'master' into carousel-v2-spacing
2025-02-06 17:30:49 +09:00
Dean Herbert
f4bb3bc422
Merge pull request #31802 from frenzibyte/carousel-v2-depth-ordering
...
Allow ordering certain carousel panels behind others
2025-02-06 17:29:56 +09:00
Dean Herbert
bff686f012
Avoid double iteration when updating group states
2025-02-06 17:22:50 +09:00
Dean Herbert
024fbde0fd
Refactor selection and activation handling
...
I had a bit of a struggle getting header traversal logic to work well.
The constraints I had in place were a bit weird:
- Group panels should toggle or potentially fall into the prev/next
group
- Set panels should just traverse around them
The current method of using `CheckValidForGroupSelection` return type
for traversal did not mesh with the above two cases. Just trust me on
this one since it's quite hard to explain in words.
After some re-thinking, I've gone with a simpler approach with one
important change to UX: Now when group traversing with a beatmap set
header currently keyboard focused, the first operation will be to reset
keyboard selection to the selected beatmap, rather than traverse.
I find this non-offensive – at most it means a user will need to press
their group traversal key one extra time.
I've also changed group headers to always toggle expansion when doing
group traversal with them selected.
To make all this work, the meaning of `Activation` has changed somewhat.
It is now the primary path for carousel implementations to change
selection of an item. It is what the `Drawable` panels call when they
are clicked.
Selection changes are not performed implicitly by `Carousel` – an
implementation should decide when it actually wants to change the
selection, usually in `HandleItemActivated`.
Having less things mutating `CurrentSelection` is better in my eyes, as
we see this variable as only being mutated internally when utmost
required (ie the user has requested the change). With this change,
`CurrentSelection` can no longer become of a non-`T` type (in the
beatmap carousel implementation at least).
This might pave a path forward for making `CurrentSelection` typed, but
that comes with a few other concerns so I'll look at that as a
follow-up.
2025-02-06 17:02:44 +09:00
Salman Alshamrani
78cd093a47
Fix broken input handling with structural changes
2025-02-06 02:44:40 -05:00
Bartłomiej Dach
5bcd79956b
Merge branch 'master' into bss/api-setup
2025-02-06 08:30:01 +01:00
Salman Alshamrani
134e62c39a
Abstractify beatmap panel piece and update all panel implementations
2025-02-06 02:21:34 -05:00
Dean Herbert
342a66b9e2
Fix keyboard traversal on a collapsed group not working as intended
2025-02-06 14:49:58 +09:00
Dean Herbert
88ad87a78e
Expose set grouping state
2025-02-06 14:30:15 +09:00
Dean Herbert
9cc90a51df
Adjust xmldoc and avoid LINQ overheads
2025-02-06 13:32:11 +09: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
Bartłomiej Dach
7d299bb2ad
Expose EndpointConfiguration
directly in IAPIAccess
2025-02-05 13:31:37 +01:00
Salman Alshamrani
2d75030e36
Change default carousel item header to 50px
2025-02-05 07:17:27 -05:00
Dean Herbert
11de429621
Add support for grouping by artist
2025-02-05 19:48:41 +09:00
Salman Alshamrani
c370c75fe2
Allow ordering certain carousel panels behind others
2025-02-05 05:47:55 -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
Bartłomiej Dach
e5943e460d
Unify ConfigureAwait()
calls across method
2025-02-05 10:28:42 +01:00