1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-21 07:53:38 +08:00
Commit Graph

444 Commits

Author SHA1 Message Date
Dean Herbert
f3bda4e040 Fix weird edge case of nullability in CarouselRoot
A bit unfortunately, but it's what we get for having ctor level bindings..
2022-09-07 14:27:25 +09:00
Dean Herbert
e18b524f8e Fix missing null checks on selectedBeatmap fields in BeatmapCarousel 2022-09-07 14:12:35 +09:00
Dean Herbert
241d33d415 Apply NRT to BeatmapCarousel 2022-09-07 14:07:53 +09:00
Salman Ahmed
a3e595a9aa Update comment to include inserted indices 2022-08-26 14:51:19 +03:00
Salman Ahmed
81c0a641b4 Fix selection fallback path not updated to check inserted indices 2022-08-26 14:51:08 +03:00
Dean Herbert
a146db0e35 Merge branch 'master' into carousel-perform-selection 2022-08-26 19:29:00 +09:00
Dean Herbert
9d2c2b71cf Change conditional to check for insertions in addition to modifications
It is possible that the import process itself marks the previous
beatmaps as deleted due to an overlap in metadata or otherwise.
2022-08-16 16:21:36 +09:00
Dean Herbert
e6a3659581 Guard against NewModifiedIndices being empty 2022-07-27 14:23:47 +09:00
Dean Herbert
24d75612e2 Always attempt to follow selection, even if difficulty name / metadata change 2022-07-27 14:18:53 +09:00
Dean Herbert
8105d4854a Fix beatmap carousel not maintaining selection if currently selected beatmap is updated 2022-07-27 13:33:48 +09:00
Dean Herbert
fc0c9f76bd Fix UpdateBeatmapSetButton intermittent test failure
Carousel would only expire items when off-screen. This meant that for a
case (like a test) where items are generally always on-screen,
`UpdateBeatmapSet` calls would result in panels remaining hidden but not
cleaned up.
2022-07-21 16:24:48 +09:00
Dean Herbert
3cfe624af1 Fix one more missed method with incorrect terminology 2022-07-21 16:16:41 +09:00
Dean Herbert
a05d7f4d8c Change carousel terminology to not use Children / InternalChildren 2022-07-21 16:06:06 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
c43670fcd9
Merge pull request #18603 from peppy/fix-import-dialog
Add placeholder when no results are visible at song select
2022-06-08 15:22:31 +09:00
Dean Herbert
2e0b888410 Fix song select carousel invalidating every frame during global overlay dimming 2022-06-07 23:46:53 +09:00
Dean Herbert
0d32c94104 Add initial implementation of beatmap carousel no-results-placeholder 2022-06-07 17:25:06 +09:00
Salman Ahmed
9416346c94 Globalise beatmap selection key bindings as "group" selection 2022-05-04 16:46:32 +03:00
Salman Ahmed
d52a1a5d23 Add key binding for beatmap selection in song select 2022-05-04 03:52:10 +03:00
Dean Herbert
eb25730b61 Revert "Merge pull request #16716 from peppy/carousel-less-invalidations"
This reverts commit 8d13e0514b, reversing
changes made to 95582a9023.
2022-02-05 16:12:58 +09:00
Jamie Taylor
0f48c0131c
Layer playback of beatmap-changed and random-beatmap samples 2022-02-04 19:57:54 +09:00
Dean Herbert
6d6327d3da Fix test beatmap loading potentially performing selection before carousel itself is loaded 2022-02-03 18:40:16 +09:00
Dean Herbert
4f3e55a0ce
Merge branch 'master' into songselect-random-sfx 2022-02-02 17:18:24 +09:00
Dean Herbert
8917ab78f4 Reduce unnecessary container nesting and adjust empty state opacity slightly 2022-01-31 14:46:20 +09:00
Jamie Taylor
f59828e2d9
Add audio feedback to song select 'random' 2022-01-28 13:43:37 +09:00
Dean Herbert
449e9bcf5c Ensure beatmap carousel scroll position is maintained during deletion operations 2022-01-27 16:52:02 +09:00
Dean Herbert
0a45aa80cb Remove unnecessary double-schedule in UpdateBeatmapSet 2022-01-27 16:52:02 +09:00
Dean Herbert
d7342880f5 Update remaining cases of clashes with realm.Write and realm.RegisterForNotifications 2022-01-25 13:09:48 +09:00
Dean Herbert
e23b10e6a5 Update remaining cases of clashing variable name in realm.Run(realm.. 2022-01-25 13:04:05 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
40aa873190 Rename register methods to better explain their purpose 2022-01-24 14:37:36 +09:00
Dean Herbert
e9e3e024a1 Update all usages of QueryAsyncWithNotifications to use new Register pathway 2022-01-23 20:28:04 +09:00
Dean Herbert
61cef42be9 Proof of concept realm subscriptions via Register 2022-01-23 20:28:04 +09:00
Dean Herbert
1f157d729d Update existing subscriptions to new style
Fix missing detach calls in `MusicController`
2022-01-21 20:05:03 +09:00
Dean Herbert
8f1dfa33a2 Merge branch 'master' into realm-context-use-update-when-feasible 2022-01-21 18:03:09 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
3bcdce128c Use dictionary add for safety 2022-01-21 15:29:21 +09:00
Dean Herbert
ff4f40db8a Merge branch 'master' into carousel-performance-n 2022-01-21 15:27:42 +09:00
Dean Herbert
5b24800b0e Avoid applying filter in UpdateBeatmapSet flow 2022-01-21 13:26:25 +09:00
Dean Herbert
ba31ddee01 Revert beatmapSets reference to fix tests
New version changed order.
2022-01-21 00:34:12 +09:00
Dean Herbert
80f3a67876 Use for instead of foreach to avoid enumerator overhead 2022-01-20 22:21:00 +09:00
Dean Herbert
0b93f3c88f Add <Guid,CarouselBeatmapSet> dictionary to speed up update operations in carousel 2022-01-20 22:12:49 +09:00
Dean Herbert
a8ce2c5edf Detach before sending BeatmapSetInfo to any handling method 2022-01-20 21:14:10 +09:00
Dean Herbert
b1cf3befa6 Fix incorrect query in comment 2022-01-20 18:36:20 +09:00
Dean Herbert
3ba712703b Add a note about hidden beatmap check 2022-01-20 17:50:17 +09:00
Dean Herbert
1dabf6c8a5 Fix BeatmapCarousel signalling it is finished loading before catching up on realm changes 2022-01-20 16:39:42 +09:00
Dean Herbert
6c46fd6931 Fix some failing tests due to realm beatmaps overwriting test beatmaps 2022-01-20 00:19:16 +09:00
Dean Herbert
2789986699 Use asynchronous loading for beatmap carousel again 2022-01-19 18:15:43 +09:00
Dean Herbert
200fcb6f83 Detach beatmap set before checking hidden state 2022-01-19 16:59:49 +09:00
Dean Herbert
11ca1b6e7b Remove one more usage of IsManaged which could potentially go wrong 2022-01-17 13:40:27 +09:00
Dean Herbert
6025fe325d Fix filter criteria not being applied after carousel loads new beatmap sets 2022-01-13 15:08:51 +09:00
Dean Herbert
ef0f794fd6 Remove stay newline 2022-01-12 18:13:14 +09:00
Dean Herbert
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
Dean Herbert
0aff1c232b Fix deleted/hidden carousel queries 2022-01-12 17:49:11 +09:00
Dean Herbert
7dba3c3551 Fix most remaining test issues 2022-01-12 17:49:11 +09:00
Dean Herbert
02d0ca2741 Fix protected beatmaps showing up in the song select carousel 2022-01-12 17:49:10 +09:00
Dean Herbert
41d90cd0b5 Fix beatmap carousel test failures 2022-01-12 17:49:10 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
c9257e9ecc Fix missing disposal of realm subscriptions in BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
3152d2d8a0 "Update" BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
66c307e0ee Remove usage of key repeat helper method 2021-11-18 13:13:36 +09:00
Dean Herbert
54f72d68ca Revert weird event flow in model manager/importers 2021-11-05 19:12:49 +09:00
Dean Herbert
ec61c3c5ee Rename all remaining cases 2021-10-03 00:55:29 +09:00
Dean Herbert
973c31132b Rename BeatmapInfo variables which were named beatmap for clarity 2021-10-02 12:45:34 +09:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
Endrik Tombak
52a243afca Don't select random beatmap when previous was filtered 2021-08-25 22:03:07 +03:00
Dean Herbert
7c4a072568 Merge branch 'master' into scroll-to-20 2021-01-21 13:48:26 +09:00
Bartłomiej Dach
4998aaaa98 Remove outdated warning disable
Does not trigger any more on Rider 2020.3.2.
2021-01-06 18:38:25 +01:00
Dean Herbert
53e6a349bb Fix incorrect initial conditional
Turns out this wasn't actually required.
2021-01-03 22:44:32 +09:00
Dean Herbert
a6d4992997 Ensure SelectionChanged events are only sent once when selection is null 2021-01-03 12:53:25 +09:00
Dean Herbert
e2de5bb8f9 Fix the beatmap carousel not returning to centre correctly after resizing window 2021-01-02 22:05:41 +09:00
Endrik Tombak
78c14fd696 Refactor code into UserTrackingScrollContainer 2020-12-22 17:36:44 +02:00
Dean Herbert
897f593b37 Fix beatmap carousel panels getting masked away when out of scroll bounds
Regressed in https://github.com/ppy/osu/pull/10973 due to removed masking specification.

Closes #11067.
2020-12-03 13:26:28 +09:00
Dean Herbert
792934f2c4 Allow scroll type to be specified
This brings back the ability for the carousel to scroll in a classic
way. It turns out this is generally what we want for "seek" operations
like "random", else it's quite hard to get the expected animation.

I did experiment with applying the animation after the pooled panels are
retrieved, but in a best-case scenario there is still a gap where no
panels are displayed during the random seek operation.
2020-11-27 13:54:38 +09:00
Dean Herbert
0a48dd8f76 Delegate scroll animation to panels themselves 2020-11-26 18:42:51 +09:00
Dean Herbert
ad258e2e52 Update scroll position before applying any panel animations
In the case of automatic scroll requirements (ie. scroll to selected) we
are delegating the animation logic to the panels themselves. In order to
make this work correctly, the scroll operation needs to take effect
before any animation updates are run.
2020-11-26 18:33:41 +09:00
Dean Herbert
6058c66edb Move drawable carousel set movement logic into panels themselves 2020-11-26 18:32:43 +09:00
Dean Herbert
f8db7a9902 Remove ScrollableContent container from carousel
This was causing multiple issues with masking and sizing and really
didn't need to exist in the first place. Also not sure why the pool was
nested inside the scroll container, but it isn't any more. Probably for
the best.
2020-11-26 18:28:54 +09:00
Dean Herbert
d5940193a2 Ensure visible items is greater than zero before trying to display a range 2020-10-19 19:55:20 +09:00
Dean Herbert
9106e97c37 Ensure max value in clamp is at least zero 2020-10-19 19:10:01 +09:00
Dean Herbert
1c2185e969 Replace comment with link to issue 2020-10-19 18:41:28 +09:00
Dean Herbert
044622a7a6 Fix out of bounds issues 2020-10-19 18:41:17 +09:00
Dean Herbert
bff3856c83 Account for panel height when removing as off-screen 2020-10-19 13:13:32 +09:00
Dean Herbert
ee0efa0b4c Fix off-by-one in display range retrieval logic 2020-10-19 13:05:42 +09:00
Dean Herbert
4590d9b93b Remove outdated comment logic 2020-10-19 13:04:12 +09:00
Dean Herbert
5d11db7753 Locallise ChildItems to DrawableCarouselBeatmapSet for clarity 2020-10-13 19:31:29 +09:00
Dean Herbert
8eca28e8bc Add comment about off-screen loading 2020-10-13 19:10:35 +09:00
Dean Herbert
a1801f8ae4 Unmark todo for now 2020-10-13 18:47:36 +09:00
Dean Herbert
40a0ab7aaa Avoid allocating CarouselItems for bounds checks 2020-10-13 18:33:31 +09:00
Dean Herbert
83358d487f Remove logging 2020-10-13 18:18:22 +09:00
Dean Herbert
69650c16fc Simplify vertical position calculations by including spacing in height definition 2020-10-13 18:13:36 +09:00
Dean Herbert
f3b937e358 Fix masking issues with certain aspect ratio displays 2020-10-13 17:37:33 +09:00
Dean Herbert
1f0aa974dd Fix failing tests 2020-10-13 17:37:33 +09:00
Dean Herbert
cfec4f4fc1 Extract header element from base DrawableCarouselItem class 2020-10-13 17:37:33 +09:00
Dean Herbert
2aad482545 Fix x offsets of difficulties not being updated 2020-10-13 17:37:33 +09:00