1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-20 02:52:58 +08:00
Commit Graph

12210 Commits

Author SHA1 Message Date
Dean Herbert
c935c3154b
Always transfer keyboard selection on activation 2025-02-07 17:02:53 +09:00
Dean Herbert
0235928fda
Merge pull request #31815 from smoogipoo/score-panel-ruleset
Add ruleset icon to expanded score panel
2025-02-07 16:04:24 +09:00
Dean Herbert
25846b2327
Adjust results screen designs and tests slightly 2025-02-07 14:21:43 +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
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
Dean Herbert
4026ca84f8
Move selected retrieval functions to base class 2025-02-06 16:48:17 +09:00
Dean Herbert
a25e1f4f9b
Add test coverage of artist grouping 2025-02-06 16:48:17 +09:00
Dean Herbert
bf377e081a
Reorganise tests to make more logical when manually testing 2025-02-06 15:09:41 +09:00
Dean Herbert
0257b8c2ff
Move metadata randomisation local to usage 2025-02-06 14:07:50 +09:00
Dean Herbert
4fda4d625f
Merge pull request #31803 from bdach/bss/submission-progress-display
Implement visual component for displaying submission progress
2025-02-06 13:37:08 +09:00
Bartłomiej Dach
092b953dca
Implement visual component for displaying submission progress 2025-02-05 13:31:35 +01:00
Bartłomiej Dach
ceb424faa1
Merge pull request #31798 from peppy/carousel-v2-async-fix
Fix `Carousel.FilterAsync` not working when called from a non-update thread
2025-02-05 12:23:27 +01:00
Dean Herbert
11de429621
Add support for grouping by artist 2025-02-05 19:48:41 +09:00
Dean Herbert
ea725e2caf
Merge pull request #31524 from smoogipoo/user-panel-status
Display up-to-date online status in user panels
2025-02-05 19:22:27 +09:00
Dean Herbert
c37fa261c3
Merge pull request #31789 from bdach/distance-snap-fix
Fix distance snap grid not properly working due to multiple issues
2025-02-05 18:41:46 +09:00
Dean Herbert
9b79cf6c61
Merge pull request #31784 from bdach/bss/wizard-appearance
Implement visual appearance of beatmap submission wizard
2025-02-05 17:34:30 +09:00
Dean Herbert
14273824dc
Fix Carousel.FilterAsync not working when called from a non-update thread
I was trying to be smart about things and make use of our
`SynchronisationContext` setup, but it turns out to not work in all
cases due to the context being missing depending on where you are
calling the method from.

For now let's prefer the "works everywhere" method of scheduling the
final work back to update.
2025-02-05 16:40:11 +09:00
Dean Herbert
0d7bbd63fc
Merge branch 'master' into user-panel-status 2025-02-04 22:56:19 +09:00
Bartłomiej Dach
23ec27e911
Merge branch 'master' into distance-snap-fix 2025-02-04 13:50:14 +01:00
Dean Herbert
a93dabd33f
Merge branch 'master' into multiplayer-free-style 2025-02-04 21:48:39 +09:00
Bartłomiej Dach
41cf3696f2
Merge branch 'master' into bss/wizard-appearance 2025-02-04 13:48:35 +01:00
Dean Herbert
82ccce8099
Merge pull request #31783 from bdach/bss/form-button
Implement "form button" control
2025-02-04 21:45:11 +09:00
Bartłomiej Dach
d28ea7bfbf
Fix code quality 2025-02-04 12:30:36 +01:00
Bartłomiej Dach
4077b41837
Merge branch 'bss/form-button' into bss/wizard-appearance 2025-02-04 12:30:08 +01:00
Bartłomiej Dach
7402f3e508
Merge branch 'master' into bss/form-button 2025-02-04 12:29:22 +01:00
Dan Balasescu
0ad97c1fad
Fix inspection 2025-02-04 18:24:57 +09:00
Dean Herbert
599b59cb14
Add expanded state to sample drawable representations 2025-02-04 18:06:16 +09:00
Dan Balasescu
61419ec9c8
Refactor user presence watching to be tokenised 2025-02-04 17:54:03 +09:00
Dean Herbert
58560f8acf
Add tracking of expansion states for groups and sets 2025-02-04 17:51:51 +09:00
Dean Herbert
ccdb6e4c48
Fix carousel tests failing due to dependency on depth ordering 2025-02-04 17:50:16 +09:00
Dean Herbert
2f2dc158e0
Ensure test step doesn't consider pooled instances of drawables 2025-02-04 17:45:02 +09:00
Bartłomiej Dach
4dd4e52e6d
Implement visual appearance of beatmap submission wizard 2025-02-04 09:06:33 +01:00
Bartłomiej Dach
3893303988
Implement "form button" control 2025-02-04 09:05:33 +01: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
b5c4e3bc14
Add failing tests for traversal on group headers 2025-02-04 02:55:34 +09:00
Bartłomiej Dach
2d6f64e891
Fix code quality 2025-02-03 15:18:03 +01:00
Bartłomiej Dach
df37768ff4
Remove unused method
Only used in test code.
2025-02-03 14:01:51 +01:00
Bartłomiej Dach
a1185df2eb
Refactor IDistanceSnapProvider to accept slider velocity objects as a reference
Method signatures are also changed to be a lot more explicit as to what
inputs they expect.
2025-02-03 14:00:57 +01:00
Dean Herbert
c7780c9fdc
Refactor how grouping is performed 2025-02-03 20:40:52 +09:00
Dean Herbert
f24716563c
Merge branch 'master' into user-panel-status 2025-02-03 18:31:28 +09:00
Bartłomiej Dach
ee7d281e73
Merge branch 'master' into fix-limit-distance-snap-to-current 2025-02-03 08:57:27 +01:00
Dean Herbert
9c34819ff4
Add test coverage for grouped selection 2025-02-03 02:39:45 +09:00
Dean Herbert
3cde11ab77
Re-enable masking by default 2025-02-03 02:24:26 +09:00
Bartłomiej Dach
c3981f1097
Do not reset online info on beatmap save 2025-01-31 12:21:42 +01:00
Bartłomiej Dach
8718483c70
Avoid moving already placed objects temporally when "limit distance snap to current time" is active 2025-01-31 09:51:13 +01:00
Dan Balasescu
007bf87a6b
Merge pull request #31723 from peppy/fix-unstable-rate-incrementatl
Fix incremental unstable rate calculation not matching expectations
2025-01-29 23:54:59 +09:00
Bartłomiej Dach
d87720da1b
Merge branch 'master' into fix-editor-textbox-regressions 2025-01-29 11:25:16 +01:00
Dean Herbert
6c4b4166ac
Add fail cases to unstable rate incremental testing 2025-01-29 17:10:05 +09:00
Bartłomiej Dach
092c7b4253
Merge branch 'master' into beatmap-carousel-v2-split-panels 2025-01-24 15:16:23 +01:00
Bartłomiej Dach
b0136f98a9
Fix test failures 2025-01-24 14:24:16 +01:00