1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-30 07:52:56 +08:00
Commit Graph

335 Commits

Author SHA1 Message Date
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
iiSaLMaN
8ccbe84f67 Loop on distinct rulesets of beatmap instead of all 2019-08-24 01:30:33 +03:00
iiSaLMaN
87340061e1 Add logic to create grouped difficulty icons in carousel beatmap set 2019-08-24 00:06:28 +03:00
Dean Herbert
7bf430afd5 Add padding back to difficulty icons on carousel 2019-08-21 21:16:06 +09:00
Dean Herbert
48716f8f2b Update framework 2019-08-21 13:29:50 +09:00
Dean Herbert
f355cff8bc Apply reviews 2019-08-15 12:11:54 +09:00
Dean Herbert
7e74953784 Merge remote-tracking branch 'upstream/master' into difficulty-icon-tooltip 2019-08-15 11:54:59 +09:00
iiSaLMaN
38bc652bf2 Remove sorting by length for beatmaps 2019-07-09 17:02:51 +03:00
iiSaLMaN
e0c1fb7818 Compare by milliseconds for length 2019-07-09 14:47:54 +03:00