1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-07 21:33:16 +08:00
Commit Graph

71647 Commits

Author SHA1 Message Date
Dean Herbert
6c069b3373
Merge branch 'master' into pp-dev 2025-02-07 14:09:25 +09:00
Dean Herbert
4f6fd68a91
Fix inspections 2025-02-07 13:54:35 +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
2593946f69
Merge pull request #31636 from tsunyoku/taiko-cleanup 2025-02-06 21:12:49 +09:00
Dan Balasescu
736fe78a02
Merge pull request #31817 from peppy/carousel-v2-invalidation
Add invalidation on draw size change in beatmap carousel v2
2025-02-06 19:54:49 +09: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
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
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
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
0257b8c2ff
Move metadata randomisation local to usage 2025-02-06 14:07:50 +09:00
Dean Herbert
d9b370e3a1
Add xmldoc for menu implying external consumption 2025-02-06 13:48:38 +09:00
Dean Herbert
dd53ae0e02
Merge pull request #31806 from bdach/bookmark-follow-ups
Improve bookmark controls
2025-02-06 13:48:12 +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
Dean Herbert
9cc90a51df
Adjust xmldoc and avoid LINQ overheads 2025-02-06 13:32:11 +09:00
Bartłomiej Dach
10711e5e27
Add missing partial 2025-02-05 15:39:36 +01:00
Bartłomiej Dach
4cbfb51707
Fix undoing bookmark operations potentially making them unsorted
Found in testing of previous commit. This would break seeking between
bookmarks.

Reproduction steps on `master`:

- open map with bookmark
- delete the first bookmark
- undo the deletion of the first bookmark
- seek to previous bookmark will now always seek to the first bookmark
  rather than closest preceding regardless of current clock time
2025-02-05 15:30:11 +01:00
Bartłomiej Dach
abce42b1c8
Improve bookmark controls
- Bookmark menu items get disabled when they would do nothing.
- Bookmark deletion only deletes the closest bookmark instead of all of
  them within the proximity of 2 seconds to current clock time. Action
  is only however *enabled* within 2 seconds of a bookmark.

Additionally, logic was moved out of `Editor` because it's a huge class
and I dislike huge classes if they can be at all avoided.
2025-02-05 15:28:27 +01: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
Salman Alshamrani
c370c75fe2 Allow ordering certain carousel panels behind others 2025-02-05 05:47:55 -05: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
40ea7ff238
Add better documentation for interval change code 2025-02-05 18:48:48 +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
Bartłomiej Dach
e5943e460d
Unify ConfigureAwait() calls across method 2025-02-05 10:28:42 +01:00
Bartłomiej Dach
c5deb9f36b
Use alternative lockless solution for atomic cancellation token recreation 2025-02-05 10:28:25 +01:00
Dean Herbert
b7aa71c975
Adjust xmldoc slightly to convey the disposal pattern 2025-02-05 18:24:07 +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
5c9e84caf0
Add lock object 2025-02-05 17:31:54 +09:00
Bartłomiej Dach
4f629478b8
Merge pull request #31779 from peppy/menu-fade-out
Change menus to fade out with a slight delay so settings changes are visible
2025-02-05 09:29:56 +01: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
2356d3e2d0
Refactor OsuContextMenu to avoid code duplication 2025-02-05 16:34:15 +09:00
Dean Herbert
8c5b19d4f8
Merge pull request #31780 from necocat0918/pr
Added warning before bookmark reset
2025-02-05 16:02:44 +09:00
Dean Herbert
09d26fbf5e
Minor adjustments 2025-02-05 15:58:34 +09:00
NecoDev
13fa49d5b5
Merge branch 'master' into pr 2025-02-05 14:53:20 +08:00
Dean Herbert
8447679db9
Initial tidy-up pass on IntervalGroupingUtils 2025-02-05 15:47:18 +09:00
Dean Herbert
325483192a
Tidy up xmldoc and remove another unused field 2025-02-05 15:33:06 +09:00
Dean Herbert
fc93390284
Remove unused HitObjectInterval 2025-02-05 15:10:15 +09:00
Dean Herbert
709ad02a51
Simplify TaikoRhythmData's ratio computation 2025-02-05 15:09:51 +09:00
Dean Herbert
fa844b0ebc
Rename Colour / Rhythm related fields and classes 2025-02-05 15:08:15 +09:00
NecoDev
db7b665f4d Removed unused using
For https://github.com/ppy/osu/pull/31780
2025-02-05 13:31:57 +08:00
Dean Herbert
20c4badbba
Merge pull request #31795 from peppy/update-framework
Update framework
2025-02-04 23:53:55 +09:00
Dean Herbert
099ce39531
Use same delay in context menus 2025-02-04 23:21:41 +09:00
Dean Herbert
0d7bbd63fc
Merge branch 'master' into user-panel-status 2025-02-04 22:56:19 +09:00
Dean Herbert
15ed029dd1
Merge pull request #31260 from smoogipoo/multiplayer-free-style
Add support for "freestyle" in multiplayer
2025-02-04 22:40:38 +09:00