1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 22:32:55 +08:00
Commit Graph

440 Commits

Author SHA1 Message Date
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
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
Dean Herbert
2d74609f50 Fix crash due to misordered selection events 2020-01-26 19:06:50 +09:00
Dean Herbert
e88e40eec4 Expand on comment 2020-01-15 15:11:36 +09:00
Joehu
b42b23d65b Add comment for alt pressed
Taken from OsuScrollContainer
2020-01-14 20:52:15 -08:00
Joehu
2060be345d Move alt pressed condition to top of method 2020-01-14 20:44:55 -08:00
Joehu
c196e83e75 Allow changing volume in song select with arrow keys when pressing alt 2020-01-13 20:48:39 -08:00
smoogipoo
91735ff367 Update MathUtils namespace usages 2020-01-09 13:43:44 +09:00
Huo Yaoyuan
ab70abe8bd Turn off unexpected new warnings. 2019-12-15 20:07:56 +08:00
Huo Yaoyuan
c0fe91a84c Merge branch 'master' into sharpen 2019-11-26 18:21:50 +08:00
Berkan Diler
fccdbffa93 Use MathF instead of Math- functions when possible
MathF-functions are faster than the Math-counterpart and it looks cleaner, so use MathF when we cast to float or int anyway.
2019-11-25 00:45:42 +01:00
Dean Herbert
d8260f4a65 Reduce carousel scroll motion on initial display 2019-11-22 10:51:49 +09:00
Huo Yaoyuan
818553027b Merge branch 'master' into sharpen 2019-11-21 23:42:46 +08:00
Dan Balasescu
a7c074ff37
Merge branch 'master' into math_clamp 2019-11-21 11:08:56 +09:00
Berkan Diler
6cab517b2d .NET Standard 2.1 implements Math.Clamp , use it instead of MathHelper.Clamp from osuTK. 2019-11-20 13:37:47 +01:00
Dean Herbert
3ba9f840fd Fix song select not always scrolling to the correct location 2019-11-20 19:39:13 +09:00
Huo Yaoyuan
374ef6ff83 Merge branch 'master' into sharpen 2019-11-20 17:30:58 +08:00
Huo Yaoyuan
b04bca7db6 Reference elements in origin definition. 2019-11-17 20:55:40 +08:00
Huo Yaoyuan
d60493a961 Use discards. 2019-11-12 20:03:21 +08:00
Dean Herbert
4a59e3351e Update beatmap carousel tests code style
Also fixes one issue I spotted in BeatmapCarousel related to incorrectly holding a selection after new sets are loaded.
2019-09-25 02:42:12 +09:00
Dean Herbert
b57298406f Fix right click blocking not resetting correctly 2019-08-15 19:25:33 +09:00
Dean Herbert
0f4bada21e Fix right click absolute scrolling interfering with context menus 2019-08-15 18:27:45 +09:00
Dean Herbert
e73a9c2748 Fix song select context menus displaying off-screen 2019-08-15 14:06:29 +09:00
Dean Herbert
90b1fe81f3 Update cached usage in line with framework changes 2019-08-09 19:12:29 +09:00
Dean Herbert
3571cb96b0 Fix broken merge 2019-07-27 12:56:55 +09:00
David Zhao
57e6c388a1
Merge branch 'master' into carousel-sizing 2019-07-27 11:40:07 +09:00
David Zhao
0f6c6c7de0 consolidate halfheight as well 2019-07-26 15:22:29 +09:00
David Zhao
6765e9f7fa Combine into properties and update for framework changes 2019-07-26 15:13:10 +09:00
David Zhao
c89830f3d8 move constants, combine local vars into properties 2019-07-26 13:07:28 +09:00