Dan Balasescu
1d92800761
Merge pull request #11068 from peppy/fix-carousel-edge-masking
...
Fix beatmap carousel panels getting masked away when out of scroll bounds
2020-12-03 20:40:44 +09:00
smoogipoo
31f7f7072d
Fix song select panels not loading if partially offscreen
2020-12-03 15:13:20 +09: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
a852a27dfb
Fix current beatmap temporarily becoming empty during ruleset change
...
When changing the ruleset at song select, there was a scenario where it
would be set to default (empty) for one debounce length where this was
not actually required. This occurs when the currently selected beatmap
set has other difficulties which match the target ruleset, specifically.
2020-11-30 19:36:30 +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
Endrik Tombak
72d9da5fac
Apply review suggestions
2020-11-21 14:26:09 +02:00
Endrik Tombak
6c5a6b42e5
Only calculate recommended SR once
2020-11-21 14:09:32 +02:00
Endrik Tombak
944f3480c2
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
...
Conflicts:
osu.Game/OsuGameBase.cs
osu.Game/Screens/Select/DifficultyRecommender.cs
osu.Game/Screens/Select/SongSelect.cs
2020-11-21 14:01:01 +02:00
Dean Herbert
2db42f8e67
Remove default allowRetry parameter value from ResultsScreen
2020-11-20 14:35:44 +09:00
Dean Herbert
5113d4af8f
Rename BeatmapDifficultyManager to BeatmapDifficultyCache
2020-11-06 13:14:29 +09:00
Dan Balasescu
98c992004b
Merge pull request #10660 from peppy/fix-song-select-first-track-looping
...
Fix looping mode not being set on first track after entering song select
2020-11-04 14:37:27 +09:00
Dean Herbert
cfe3218239
Move scheduler call to inside method itself for added safety
2020-11-04 10:23:06 +09:00
Dean Herbert
d788931661
Fix LoadComponentAsync calls potentially occuring after beatmap wedge disposal
...
As seen in https://ci.appveyor.com/project/peppy/osu/builds/36109658/tests .
Also adds cancellation logic for good measure.
2020-11-03 19:53:45 +09:00
Dean Herbert
df9ff76f23
Reduce assert to guard in the outwards direction
2020-11-03 16:49:13 +09:00
Dean Herbert
d5c95a8b46
Centralise into methods and add assertions for safety
2020-11-03 00:45:55 +09:00
Dean Herbert
c3d3856a64
Fix looping mode not being set on first track after entering song select
...
Closes #10656 .
2020-11-02 23:51:02 +09:00
smoogipoo
6f623d8cca
Rename IsUserPaused -> UserPauseRequested
2020-11-02 16:08:59 +09:00
Dean Herbert
8f2cd0e8c5
Add matching requestedByUser parameter to Play method
2020-11-02 15:01:30 +09:00
Dean Herbert
6e2d722b8a
Merge pull request #10649 from ppy/dependabot/nuget/Microsoft.CodeAnalysis.FxCopAnalyzers-3.3.1
2020-11-02 11:52:38 +09:00
Dean Herbert
61c9bb3245
Merge branch 'master' into dependabot/nuget/Microsoft.CodeAnalysis.FxCopAnalyzers-3.3.1
2020-11-02 10:56:09 +09:00
Dan Balasescu
b1b52f9073
Merge branch 'master' into fix-resume-beatmap-options-edit
2020-11-02 10:46:31 +09:00
Joehu
71d55f16f3
Fix edit beatmap options button not resuming back to song select
2020-11-01 13:50:38 -08:00
Bartłomiej Dach
3090b6ccb5
Resolve CA2249 inspections
...
"Use `string.Contains` instead of `string.IndexOf` to improve
readability"
2020-11-01 18:54:44 +01:00
cadon0
a1fa6588f6
Fix "bounce" when metadata container text is empty
2020-10-31 01:06:19 +13:00
Dean Herbert
8b04cd2cb0
Fix a potential null reference when loading carousel difficulties
2020-10-25 20:28:24 +09:00
Dean Herbert
8232bf1957
Merge pull request #10576 from Game4all/song-select-wedge-dynamic-star-rating
2020-10-23 15:39:02 +09:00
Dean Herbert
9753dab93b
Remove IOnlineComponent and change existing components to use bindable flow
2020-10-22 14:19:12 +09:00
Lucas A
cf69eacae9
Make StarRatingDisplay dynamic.
2020-10-21 19:05:14 +02:00
Lucas A
670775cecb
Make beatmap wedge difficulty indicator color update dynamically.
2020-10-21 18:57:48 +02:00
Dan Balasescu
1fe987d4b3
Merge pull request #10497 from peppy/beatmap-carousel-less-diffcalc-stutter
...
Disable difficulty calculation for set-level difficulty icons
2020-10-20 14:57:34 +09:00
Dan Balasescu
976f96b51d
Merge branch 'master' into beatmap-carousel-refactor-less-alloc-overhead
2020-10-20 14:26:23 +09:00
Dan Balasescu
13060b8575
Merge branch 'master' into beatmap-carousel-less-diffcalc-stutter
2020-10-20 14:26:16 +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
467bb9b96f
Merge branch 'master' into beatmap-carousel-refactor
2020-10-19 13:17:11 +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
Berkan Diler
cc11283143
Use string.Starts-/EndsWith char overloads
2020-10-16 11:27:02 +02:00
Dean Herbert
88ffcb9234
Update EndsWith usages
2020-10-16 12:58:34 +09:00
Dean Herbert
30e1fce7a4
Reduce alloc overhead of DrawableCarouselBeatmapSet using new function-based ctor
2020-10-14 15:10:50 +09:00
Dean Herbert
07e6609e6d
Disable difficulty calculation for set-level difficulty icons
2020-10-14 14:16:22 +09:00
Dean Herbert
e662dc5342
Add missing licence headers
2020-10-13 20:57:26 +09:00
Dean Herbert
8057ea1097
Fix formatting issues
2020-10-13 20:50:36 +09:00
Dean Herbert
3d416f4d64
Clean up beatmapSet resolution in DrawableCarouselBeatmapSet
2020-10-13 19:31:29 +09:00
Dean Herbert
75b6a5e17e
Remove unnecessary hack (fixed via framework update)
2020-10-13 19:31:29 +09:00
Dean Herbert
5d11db7753
Locallise ChildItems to DrawableCarouselBeatmapSet for clarity
2020-10-13 19:31:29 +09:00
Dean Herbert
37daefc2b5
Remove outdated comment
2020-10-13 19:12:33 +09:00
Dean Herbert
8eca28e8bc
Add comment about off-screen loading
2020-10-13 19:10:35 +09:00
Dean Herbert
834b0186f4
Adjust fade duration to be slightly shorter
2020-10-13 18:50:10 +09:00
Dean Herbert
2346644c04
Switch DelayedLoadUnloadWrappers to DelayedLoadWrappers
...
Due to pooling usage, there is no time we need to unload. Switching to
DelayedLoadWrapper cleans up the code and reduces overhead
substantially.
2020-10-13 18:47:40 +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
4f4f222514
Remove unnecessary fade (already applied by base DrawableCarouselItem)
2020-10-13 18:28:28 +09:00
Dean Herbert
83358d487f
Remove logging
2020-10-13 18:18:22 +09:00
Dean Herbert
3d9ea852ec
Remove masking override (no longer needed as our size is now correct)
2020-10-13 18:14:23 +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
b1ddb08a4e
Fix right click context menus appearing in incorrect locations
2020-10-13 18:01:12 +09:00
Dean Herbert
d9a6a6b245
Split content out into own class
2020-10-13 18:01:12 +09:00
Dean Herbert
9b2ebb8f0f
Fix main content DelayedLoadUnloadWrapper not getting a valid size before load
2020-10-13 17:45:41 +09:00
Dean Herbert
f3b937e358
Fix masking issues with certain aspect ratio displays
2020-10-13 17:37:33 +09:00
Dean Herbert
fdd4d95cdc
Fix difficulties being at incorrect vertical positions after filter is applied
2020-10-13 17:37:33 +09:00
Dean Herbert
1f0aa974dd
Fix failing tests
2020-10-13 17:37:33 +09:00
Dean Herbert
b536f571fd
Move header height propagation to update for safety
2020-10-13 17:37:33 +09:00
Dean Herbert
ded09b78cb
Avoid usage of AutoSize for DrawableCarouselItems in general
2020-10-13 17:37:33 +09:00
Dean Herbert
cecdf14f53
Avoid reconstructing beatmap difficulties that were recently displayed
2020-10-13 17:37:33 +09:00
Dean Herbert
1da49073ab
Calculate content height automatically
2020-10-13 17:37:33 +09:00
Dean Herbert
c08b5e8d03
Align beatmap difficulties correctly
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
9814e9ba7f
Split classes out to reduce loc burder on DrawableCarouselBeatmapSet
2020-10-13 17:37:33 +09:00
Dean Herbert
975cd5a840
Add back beatmap difficulty appear/disappear movement
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
82f9ca3de9
Bind to filter event changes in base drawable item
2020-10-13 17:37:33 +09:00
Dean Herbert
813ee19728
Use existing event flow for rendering beatmap difficulties
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
524419d5e4
Fix filtered items being considered for height calculation
2020-10-13 17:37:33 +09:00
Dean Herbert
0a144a1388
Correctly free panels after use to avoid finalizer disposal of subtree
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
5c29aa8cce
Fix multiple difficulties being expanded at once
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
3cfc0dc82d
Add safeties to beatmap panel loading code
2020-10-13 17:37:33 +09:00
Dean Herbert
954d43ef56
Debounce state application events
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
9193f5b0ba
Expose panel height from non-drawable models
2020-10-13 17:37:33 +09:00
Dean Herbert
a393bbe8f7
Remove direct drawable storage from carousel models
2020-10-13 17:37:33 +09:00
Dean Herbert
73c238fae3
Add the ability to search for local beatmaps via online IDs
...
Closes #10470 .
2020-10-10 21:34:11 +09:00
Joehu
c6386ea605
Remember leaderboard mods filter selection in song select
2020-09-15 21:53:35 -07:00
Dean Herbert
3c70b3127c
Fix potential nullref in FilterControl during asynchronous load
2020-09-15 23:19:31 +09:00
Dan Balasescu
6cbff98295
Merge branch 'master' into add-collections-to-beatmap-options
2020-09-15 15:23:33 +09:00
Dean Herbert
2c7492d717
Add null check in SongSelect disposal for safety
2020-09-15 14:34:58 +09:00
Joehu
43daabc982
Remove unused using and move dialog to BDL
2020-09-14 12:10:00 -07:00
Joehu
c833f5fcc4
Reorder buttons to match stable
2020-09-14 11:23:41 -07:00
Joehu
57610ddad5
Fix beatmap options absorbing input from toolbar ruleset selector
2020-09-14 11:22:16 -07:00
Joehu
c30174cea3
Add manage collections button to beatmap options
2020-09-14 11:21:23 -07:00
Joehu
1a8a7ae7f8
Remove hardcoded key param from AddButton
2020-09-14 11:19:18 -07:00
Joehu
368aca015a
Move override methods to bottom
2020-09-14 11:18:00 -07:00
Bartłomiej Dach
a377cccb4d
Unsubscribe from track changed event on disposal
2020-09-14 17:10:35 +02:00
Bartłomiej Dach
f17b2f1359
Ensure track is looping in song select immediately
2020-09-12 20:43:17 +02:00
smoogipoo
5b80a7db5f
Re-namespace collections dropdown
2020-09-11 16:01:01 +09:00
Dean Herbert
033bd82953
Merge branch 'master' into fix-filtercontrol-order
2020-09-11 13:07:41 +09:00
Dean Herbert
b594a2a507
Import collections on initial import-from-stable step
2020-09-11 11:16:00 +09:00
smoogipoo
314cd13b74
Fix song select filter ordering
2020-09-10 23:36:22 +09:00
Dean Herbert
18d96738a1
Fix hard crash on deleting a collection with no collection selected
2020-09-10 19:52:34 +09:00
smoogipoo
6b56c6e83f
Rename to CollectionMenuItem
2020-09-09 23:11:19 +09:00
smoogipoo
43525614ad
Store raw BeatmapCollection in filter control
2020-09-09 23:10:21 +09:00
smoogipoo
1a023d2c88
Fix a few more tests
2020-09-09 16:33:48 +09:00
smoogipoo
0360f7d845
Move CollectionManager to OsuGame
2020-09-09 15:39:15 +09:00
smoogipoo
4ddf5f054b
Rename BeatmapCollectionManager -> CollectionManager
2020-09-09 15:31:08 +09:00
smoogipoo
a5e1e8d043
Rename More... to Manage...
2020-09-08 18:57:18 +09:00
smoogipoo
ae022d7559
Show all items in dropdown, set global max height
2020-09-08 18:55:53 +09:00
smoogipoo
4962213cc4
Rename manage collections filter/text
2020-09-08 18:42:55 +09:00
smoogipoo
f581df47c8
Add "New collection..." item to dropdown
2020-09-08 18:25:09 +09:00
smoogipoo
c2da3d9c84
Fix button input and tests
2020-09-08 14:36:38 +09:00
smoogipoo
8a3c8a6185
Show button when selected or preselected
2020-09-08 14:03:49 +09:00
smoogipoo
32e3f5d091
Adjust button styling
2020-09-08 13:45:26 +09:00
Dean Herbert
8b770626fa
Add missing '...' from some popup menu items
2020-09-08 12:18:08 +09:00
Dean Herbert
b15bbc882a
Move items up in menu
2020-09-08 12:04:35 +09:00
Dean Herbert
3e5ea6c42f
Change "Add to" to "Collections"
...
Doesn't make send to be 'add to' when it can also remove
2020-09-08 12:00:00 +09:00
smoogipoo
ca4423af74
Fix tests
2020-09-08 00:07:12 +09:00
smoogipoo
e37c04cb6d
Change back to solid icon
2020-09-08 00:04:03 +09:00
smoogipoo
a1214512bc
Add filter control tests
2020-09-07 23:57:49 +09:00
smoogipoo
98e9c4dc25
General refactorings
2020-09-07 21:08:48 +09:00
smoogipoo
c1d255a04c
Split filter control into separate class
2020-09-07 20:44:39 +09:00
smoogipoo
120dfd50a6
Fix collection names not updating in dropdown
2020-09-07 20:29:28 +09:00
smoogipoo
b91a376f0a
Split dropdown into separate file
2020-09-07 20:06:38 +09:00
smoogipoo
6cc4517600
Merge branch 'master' into collection-database
2020-09-07 20:03:11 +09:00
smoogipoo
4b4dd02942
Make collection name a bindable
2020-09-05 04:43:59 +09:00