1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 01:33:21 +08:00
Commit Graph

368 Commits

Author SHA1 Message Date
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
Dean Herbert
1b7e3397c6 Use expiry to avoid ToArray 2020-10-13 17:37:33 +09:00
Dean Herbert
075bf23714 Better track off-screen drawables (and return to pool less often) 2020-10-13 17:37:33 +09:00
Dean Herbert
29983afcef Replace pool/cleanup logic with simplest form possible
This will temporarily break panels that go off-screen, as they will
disappear immediately
2020-10-13 17:37:33 +09:00
Dean Herbert
06e84c8eb3 Add comments and split out update steps into a more logical flow 2020-10-13 17:37:33 +09:00
Dean Herbert
20b54fb904 Move transform clean-up to pooling free call 2020-10-13 17:37:33 +09:00
Dean Herbert
f6aa448523 Store y positions inside items rather than in a separate array 2020-10-13 17:37:33 +09:00
Dean Herbert
b92c22ad42 Add logging 2020-10-13 17:37:33 +09:00
Dean Herbert
fd8654cff3 Add back difficulty panel spacing 2020-10-13 17:37:33 +09:00
Dean Herbert
ce67f65084 Fix single results not showing up 2020-10-13 17:37:33 +09:00
Dean Herbert
220c8ba2c4 Fix incorrect vertical offsets when difficulties are filtered away 2020-10-13 17:37:33 +09:00
Dean Herbert
8847cedf29 Add initial pass of vertical transforms 2020-10-13 17:37:33 +09:00
Dean Herbert
15325f5f51 Base bounds checks on +1 (to avoid worrying about current item heights) 2020-10-13 17:37:33 +09:00
Dean Herbert
bb03c5d77c Temporarily disable masking temporarily to fix panels disappearing at extents 2020-10-13 17:37:33 +09:00
Dean Herbert
c5a6f4b453 Fix scroll to selected beatmap 2020-10-13 17:37:33 +09:00
Dean Herbert
5c2f134665 Add back left offset for selected set 2020-10-13 17:37:33 +09:00
Dean Herbert
ca1f5dcada Add back panel padding 2020-10-13 17:37:33 +09:00
Dean Herbert
0400b34349 Load more components asynchronously after pool resolution 2020-10-13 17:37:33 +09:00
Dean Herbert
f3b24b9bb5 Avoid performing eager selection constantly on adding ranges of new children 2020-10-13 17:37:33 +09:00
Dean Herbert
0a978c6131 Add basic pooling setup 2020-10-13 17:37:33 +09:00
Dean Herbert
f17d661c1a Add basic range-based invalidation 2020-10-13 17:37:33 +09:00
Dean Herbert
3143224e5b Refactor how drawable carousel items are constructed 2020-10-13 17:37:33 +09:00
Dean Herbert
0718e9e4b6 Update outdated comment 2020-07-13 13:08:41 +09:00
Dean Herbert
ab11a112b7 Fix correct filter criteria not being applied to beatmap carousel if beatmaps take too long to load 2020-07-12 22:33:41 +09:00
smoogipoo
099416b4c3 Move check inside next difficulty selection 2020-06-26 21:03:34 +09:00
smoogipoo
8f6d52550f Fix potential exception if button is pressed before selection 2020-06-26 20:32:13 +09:00
smoogipoo
1b4c31a84f Remove double schedule 2020-06-26 20:14:08 +09:00
smoogipoo
e3d654d33f Cleanup 2020-06-26 20:14:02 +09:00
Dean Herbert
d704a4597d Use existing helper function for key repeat 2020-06-25 21:33:02 +09:00
Dean Herbert
d7742766d0 Add key/press repeat support to carousel 2020-06-25 19:47:23 +09:00
smoogipoo
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
Dean Herbert
f989f1aa00 Change event flow to avoid firing store delete events on update 2020-05-27 16:08:47 +09:00
Dean Herbert
052ad79fc6 Convert dangerous events to IBindables 2020-05-19 16:44:22 +09:00
alex
0e2ccac33b Add spaces to comments 2020-05-04 18:36:24 -07:00
Dean Herbert
119000f1ab Reduce database includes where possible 2020-04-28 21:43:35 +09:00
smoogipoo
fcfb2b9026 Merge branch 'master' into fix-select-new-from-sub-screen 2020-04-21 14:36:53 +09:00
Bartłomiej Dach
e3cd3cf1da Convert to auto-properties 2020-04-20 21:43:07 +02:00
Bartłomiej Dach
9b6e26583b Add xmldocs 2020-04-20 21:42:43 +02:00
Endrik Tombak
b57d709d15 Don't use Parent 2020-04-19 18:29:06 +03:00
Endrik Tombak
a8bfd21f3f Merge branch 'master' of https://github.com/ppy/osu into scroll-to-center 2020-04-19 18:21:34 +03:00
Dean Herbert
d62094cd4b Fix carousel not correctly updating when selection changes to a new beatmap from a child screen 2020-04-16 18:10:35 +09:00
Endrik Tombak
b475316a4e Simplify and comment 2020-04-12 20:40:08 +03:00
Endrik Tombak
63a1686dfb Scroll to screen middle 2020-04-12 12:42:52 +03:00
Dean Herbert
73a3f1fe65 Remove unnecessary DI 2020-04-11 17:30:34 +09:00
Dean Herbert
abea7b5299 Tidy up function passing, naming, ordering etc. 2020-04-11 17:13:35 +09:00
Dean Herbert
7f753f6b4d Remove current ruleset from function call 2020-04-11 16:43:09 +09:00
Dean Herbert
a843793957 Un-nest class 2020-04-11 16:41:11 +09:00
Endrik Tombak
35f97dfc75 Style changes 2020-04-09 18:59:18 +03:00
Endrik Tombak
f40bdcd34e Initial rewrite, moving API logic to SongSelect 2020-04-09 18:47:28 +03:00
Dean Herbert
260de77304
Merge branch 'master' into select-recommended 2020-04-09 15:30:35 +09:00
Dean Herbert
b47a532df3 Adjust code formatting slightly 2020-03-30 00:07:48 +09:00
Endrik Tombak
b4f0500706 Invert logic 2020-03-28 20:21:21 +02:00
Endrik
2c27894527
Use All instead of ToList Any
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-28 19:58:33 +02:00
Endrik Tombak
87854fc4fa Rename variable 2020-03-28 13:23:31 +02:00
Endrik Tombak
6a0c5c87aa Use already existing variable 2020-03-28 13:06:03 +02:00
Endrik Tombak
fc3f9ff6fa Don't use drawables for select next 2020-03-28 12:54:48 +02:00
Endrik Tombak
bbbaaae3ee Write tests 2020-03-26 19:18:16 +02:00
Endrik Tombak
ee112c6f50 Move and change logic 2020-03-26 18:42:08 +02:00
Endrik Tombak
2f5dc93d61 Select recommended difficulty 2020-03-26 00:19:54 +02:00
Dan Balasescu
d0c7b49376
Merge branch 'master' into fix-carousel-root-selects-from-nothing 2020-03-23 11:34:04 +09:00
Dean Herbert
29009c85c0
Fix typo in comment
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-22 00:32:53 +09:00
Dean Herbert
9b60b535e5 Fix selection not occurring when switching from empty ruleset on first load 2020-03-20 15:01:26 +09:00
Dean Herbert
be4a97c289 Correctly bypass last selected when it is filtered 2020-03-20 13:01:24 +09:00
Dan Balasescu
3e65f13c67
Merge branch 'master' into fix-carousel-scroll-while-import 2020-03-16 12:06:50 +09:00
Dan Balasescu
bd05462a7f
Merge branch 'master' into carousel-selection-fallback-improvement 2020-03-16 10:53:10 +09:00
Dean Herbert
340d362d69 Appease inspectcode 2020-03-15 03:51:30 +09:00
Dean Herbert
ac70fcc544 Change logic to be more resilient by identifying user scroll events 2020-03-13 12:30:27 +09:00
Dean Herbert
5f8d180b5e Fix carousel scrolling being inoperable during beatmap import 2020-03-13 11:51:26 +09:00
Dean Herbert
04f1da04db Remove incorrect xmldoc from SelectBeatmap function 2020-03-13 10:52:08 +09:00
Dean Herbert
ca9cfbe51d Move selection fallback logic out of BeatmapCarousel to SongSelect 2020-03-12 18:42:08 +09:00
Dean Herbert
28ac5af91c Fix beatmap carousel tests loading beatmap manager beatmaps in test browser 2020-03-12 16:53:23 +09:00
Dean Herbert
8294dd0b71 Fix changing ruleset at song selectnot scrolling the current selection back into view 2020-03-10 19:59:49 +09:00
Dean Herbert
489bf16bea Add SelectNext and SelectPrevious global actions 2020-03-02 18:55:28 +09:00
Dean Herbert
8186f72507 Remove unused using 2020-02-10 17:12:45 +09:00
Dean Herbert
66fb72cd8a Fix song select not showing active beatmap if it is filtered by local criteria 2020-02-10 16:59:54 +09:00
Dean Herbert
77c06b1c6e Fix beatmap carousel potentially missing beatmap imports 2020-01-29 17:09:12 +09:00
Dean Herbert
7aa5e8c23e Limit input propagation correctly 2020-01-27 14:55:47 +09:00