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
Dean Herbert
1c64b70b06
Revert "Fix crash due to misordered selection events"
...
This reverts commit 2d74609f50
.
2020-01-27 14:53:24 +09:00