Dean Herbert
b713eb2eae
Make field readonly
2021-02-18 17:13:48 +09:00
Dean Herbert
c3a98b6ad1
Fix carousel items' borders getting blown out when selected and hovered
...
I tried restructuring the hierarchy to avoid needing this added property
(moving the hover layer out of the border container) but this leads to
some subpixel leakage outside the borders which looks even worse.
Closes #6915 .
2021-02-18 16:59:44 +09:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dean Herbert
cd01591dda
Consume new debounce logic in carousel header
2021-02-12 12:22:35 +09:00
Jamie Taylor
bc7f4a4f88
Use a single sample for CarouselHeader on-hover with randomised pitch instead of multiple samples
2021-02-10 17:53:47 +09:00
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Bartłomiej Dach
43b9fde457
Add some nullability annotations for good measure
2021-01-06 13:15:15 +01:00
Dean Herbert
99701a6d9b
Add null check on beatmapContainer for safety
2021-01-06 21:06:33 +09:00
Dean Herbert
83dbba3cbf
Fix carousel beatmap set panels applying transforms to difficulties while they are loading
2021-01-05 18:41:45 +09:00
Endrik Tombak
c25e2c3dd5
Select recommended beatmap if last selection is filtered
2020-12-03 23:13:14 +02:00
smoogipoo
31f7f7072d
Fix song select panels not loading if partially offscreen
2020-12-03 15:13:20 +09:00
Dean Herbert
6058c66edb
Move drawable carousel set movement logic into panels themselves
2020-11-26 18:32:43 +09:00
Dean Herbert
5113d4af8f
Rename BeatmapDifficultyManager to BeatmapDifficultyCache
2020-11-06 13:14:29 +09: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
Dean Herbert
8b04cd2cb0
Fix a potential null reference when loading carousel difficulties
2020-10-25 20:28:24 +09: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
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
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
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
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
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
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
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
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
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
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
smoogipoo
43525614ad
Store raw BeatmapCollection in filter control
2020-09-09 23:10:21 +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
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
98e9c4dc25
General refactorings
2020-09-07 21:08:48 +09:00
smoogipoo
4b4dd02942
Make collection name a bindable
2020-09-05 04:43:59 +09:00
smoogipoo
345fb9d8e0
Rename classes
2020-09-05 03:55:43 +09:00
smoogipoo
ebd11ae0b7
Add a collection management dialog
2020-09-05 03:52:07 +09:00
smoogipoo
d363a5d164
Add basic ordering
2020-09-02 21:19:15 +09:00
smoogipoo
094ddecc95
Add dropdowns to carousel items
2020-09-02 21:08:31 +09:00
smoogipoo
9dde37fe40
Hook up collection filter
2020-09-02 20:25:42 +09:00
smoogipoo
b10b99a670
Change method signatures to remove tracked/untracked
2020-07-24 13:52:43 +09:00
smoogipoo
76284a0f01
Move cancellation out of condition
2020-07-23 23:18:51 +09:00
smoogipoo
107b5ca4f2
Add support for bindable retrieval
2020-07-21 23:13:04 +09:00
smoogipoo
9a52058a7a
Update carousel beatmap SR on mod/ruleset changes
2020-07-16 21:08:24 +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
smoogipoo
401c516503
Expose searchable terms from beatmap info instead
2020-05-07 13:04:08 +09:00
smoogipoo
5186da8412
Fix potential song select nullref
2020-05-07 11:37:04 +09:00
Dean Herbert
03a74a4320
Apply same conditional check changes to DrawableCarouselBeatmapSet
2020-04-16 12:13:26 +09:00
Dean Herbert
c4caf38feb
Simplify menu item checks (and add for other items)
2020-04-16 12:10:20 +09:00
Joehu
e2b28bfe88
Hide edit context menu item in multiplayer song select
2020-04-15 18:17:12 -07:00
Dean Herbert
abea7b5299
Tidy up function passing, naming, ordering etc.
2020-04-11 17:13:35 +09:00
Endrik Tombak
deaf24f141
Fix oversight on null
2020-04-09 19:30:40 +03: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
smoogipoo
ed3e0a01e1
Re-namespace into song select
2020-04-07 15:31:22 +09:00
Santeri Nogelainen
1e8badb14a
Move all logic to TopLocalRank and remove CarouselBeatmapRank
2020-04-04 22:28:36 +03:00
Santeri Nogelainen
faa2b49be4
Fix namespace for CarouselBeatmapRank, make UpdateableRank in TopLocalRank readonly
2020-03-28 18:13:39 +02:00
Santeri Nogelainen
1c711147f3
Move all carousel rank logic into separate classes (TopLocalRank and CarouselBeatmapRank)
2020-03-28 17:22:01 +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
Dean Herbert
8f9e97b4cc
Fix carousel not remembering last selection correctly
2020-03-19 18:07:39 +09:00
Dean Herbert
9bb3a6c677
Merge branch 'master' into click-group-difficulty-icons
2020-03-16 12:01:09 +09:00
Dean Herbert
d6be8eec0c
Merge branch 'master' into click-disabled-difficulty-icons
2020-03-16 11:30:57 +09:00
Dean Herbert
3f8b454ff4
Reword comment to match new filtering behaviour
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-13 10:01:28 +09:00
Dean Herbert
6e11c3014c
Allow grouped difficulty icons to be clicked
2020-03-12 18:42:08 +09:00
Dean Herbert
ce5d01ed19
Allow filtered difficulty icons to be clicked
2020-03-12 18:42:08 +09:00
Dean Herbert
fc058f8896
Remove unnecessary this. prefix
2020-03-12 18:03:18 +09:00
Dean Herbert
933a8ffc8a
Add test coverage
2020-03-12 17:10:51 +09:00
Dean Herbert
63edcddaf1
Apply ruleset filter in all cases (even when bypassing filter for selection purposes)
2020-03-12 15:06:26 +09:00
Dan Balasescu
9119e32f63
Merge branch 'master' into better-filter-bypass
2020-03-11 13:37:55 +09:00
Dean Herbert
ed837d3115
Use framework extension method for FromHex
2020-03-11 10:18:41 +09:00
Dean Herbert
a2d3f20409
Merge branch 'master' into better-filter-bypass
2020-03-11 02:55:14 +09:00
Dean Herbert
979988235d
Increase flexibility of StarCounter component
2020-03-08 15:56:22 +09:00
Dean Herbert
332f56a7f8
Fix nullref in tests
2020-03-05 20:34:24 +09:00
Dean Herbert
f8776a0be4
Display all difficulties from overriding selection
2020-03-04 22:59:49 +09:00
Dean Herbert
a62550b323
Reapply filters on next change after a forced beatmap display
2020-03-04 20:14:18 +09:00
smoogipoo
7ad6ad0bb0
Remove hacks that bypassed layout shortcomings
2020-02-27 13:32:23 +09:00
Dean Herbert
cd666166d5
Merge pull request #7809 from voidedWarranties/proposal-difficulty-icon-select
...
Allow selecting/playing a specific difficulty using the beatmapset difficulty icons
2020-02-21 10:24:12 +09:00
voidedWarranties
8c81f1e684
Move CarouselBeatmap access to private, test using indices
2020-02-15 17:51:55 -08:00
voidedWarranties
8e1ecddb1d
Add testing
2020-02-14 17:23:24 -08:00
recapitalverb
c46d828716
Preserve permitNulls
2020-02-14 20:59:51 +07:00
recapitalverb
10798aeab3
Fix code formatting
2020-02-14 20:30:27 +07:00
recapitalverb
c753cb46c5
Use [Resolved] wherever possible
2020-02-14 20:14:00 +07:00
voidedWarranties
368e6f9579
Use CarouselBeatmap.State to select
2020-02-13 17:47:16 -08:00
voidedWarranties
c871f07d2e
Use CarouselBeatmap action to select beatmap
2020-02-13 17:14:46 -08:00
voidedWarranties
ad0de27964
Safer dependency injection and accessibility levels
2020-02-12 22:11:26 -08:00
voidedWarranties
f8b69fe632
Remove unnecessary carousel variable, fix code formatting
2020-02-12 20:11:39 -08:00
voidedWarranties
b126c00292
Use dependency loader to get SongSelect instance
2020-02-12 19:05:08 -08:00
voidedWarranties
2901ec9f26
Select specific difficulties using their icons
2020-02-11 20:05:26 -08: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
smoogipoo
9e0e7be8d0
Modernise filter implementation
2020-01-24 18:57:17 +09:00
smoogipoo
12cc97ca31
Merge remote-tracking branch 'origin/master' into star-filtering
...
# Conflicts:
# osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs
# osu.Game/Screens/Select/Carousel/CarouselBeatmap.cs
# osu.Game/Screens/Select/FilterControl.cs
# osu.Game/Screens/Select/FilterCriteria.cs
2020-01-24 18:30:52 +09:00
smoogipoo
91735ff367
Update MathUtils namespace usages
2020-01-09 13:43:44 +09:00
Huo Yaoyuan
caf3f774ba
CA1309: compare strings correctly.
2019-12-17 13:00:15 +08:00
Dean Herbert
48287459a0
Optimise filters to avoid property retrieval
...
Also reduces number of instantiations of SearchableTerms array in the case of multiple criteria terms.
2019-12-05 01:52:22 +09:00
Huo Yaoyuan
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
Bartłomiej Dach
c181edaedf
Replace manual comparer implementation
...
Replace manually-implemented CriteriaComparer with a call to
Comparer<T>.Create() to decrease verbosity.
2019-10-28 15:07:36 +01:00
Bartłomiej Dach
c8d3dd0e5a
Make carousel item sorting stable
...
Migrate beatmap carousel item sorting from List<T>.Sort()
to IEnumerable<T>.OrderBy(), as the second variant is documented to be
a stable sorting algorithm. This allows for eliminating unnecessary
movement of carousel items occurring whenever any set of items is tied
when changing sorting criteria.
2019-10-27 23:14:14 +01:00
Dean Herbert
f15953d65c
Fix carousel including filtered difficulties in sort comparisons
2019-10-07 15:17:03 +09:00
Bartłomiej Dach
b262ba13cd
Add creator= and artist= filters
...
To match stable, add creator= and artist= filters to the beatmap
carousel on song select screen. Contrary to stable, this implementation
supports phrase queries with spaces within using double quotes.
The quote handling is not entirely correct (can't nest), but quotes
should rarely happen within names, and it is an edge case of an edge
case - leaving best-effort as is. Test coverage also included.
2019-09-22 00:20:55 +02:00
smoogipoo
7683f7ff23
Make OnlineStatus use OptionalRange
2019-09-19 17:12:07 +09:00
smoogipoo
0915a94470
Make BeatDivisor use OptionalRange
2019-09-19 16:53:27 +09:00
Dean Herbert
92556db9cd
Add query-based filter modes to song select search field
2019-09-19 02:48:28 +09:00
smoogipoo
a87a1e6031
Don't redraw certain buffered containers on scale change
2019-09-04 19:38:12 +09:00
smoogipoo
6368189d46
Refactor
2019-08-27 11:59:25 +09:00
Andrei Zavatski
9321f20884
Move arrow to the first line
2019-08-26 14:32:27 +03:00
Andrei Zavatski
fd0f42eee4
Fix filtered grouped difficulty items in DrawableCarouselBeatmapSet aren't hidden on first load
2019-08-26 14:11:24 +03:00
Dean Herbert
9881d3677d
Simplify icon creation
2019-08-25 12:05:46 +09:00
Dean Herbert
ef397434f6
use GroupBy instead of Distinct+FindAll
2019-08-25 12:00:06 +09:00
Dean Herbert
a19a9b90ed
Simplify group filter display
2019-08-25 11:39:26 +09:00