Dean Herbert
94f8197e22
Show login overlay when attempting to update a beatmap while logged out
2022-09-12 16:15:14 +09:00
Salman Ahmed
95062c2cc8
Remove center origin specification to avoid single-frame layout issues
2022-09-09 19:42:58 +03:00
Salman Ahmed
dd10a06e3d
Merge branch 'master' into top-rank-badge-order
2022-09-09 19:38:44 +03:00
Dean Herbert
1524623624
Fix back-to-front filter logic
...
Was copied across from a place which was checking for `match` and
applied verbatim to a place that was `filter`. Which are polar
opposites.
2022-09-01 19:59:27 +09:00
Dean Herbert
217fa00a72
Bring logic up-to-date
2022-08-26 19:32:49 +09:00
Dean Herbert
a146db0e35
Merge branch 'master' into carousel-perform-selection
2022-08-26 19:29:00 +09:00
Andrew Hong
55f1b43329
Removed check
2022-08-22 13:41:36 -04:00
Andrew Hong
c2036d3893
Moved filter exclusion
2022-08-22 03:39:46 -04:00
Andrew Hong
09ef13908c
Adjust to reviews
2022-08-22 03:20:27 -04:00
Andrew Hong
c6a739f5a8
Add date submitted sorting
2022-08-21 23:09:33 -04:00
Salman Ahmed
fc7fc3d673
Fix newly imported beatmaps not using correct comparer for sorting
2022-08-01 19:13:57 +03:00
Dean Herbert
438067a18b
Convert realm data propagation to more correctly use Live<T>
...
wip
2022-07-27 19:35:09 +09:00
Dean Herbert
41393616d8
Replace BeatmapCollection
with RealmBeatmapCollection
2022-07-27 19:35:09 +09:00
Dean Herbert
9c543fef48
Remove CollectionManager
2022-07-27 18:45:33 +09:00
Dan Balasescu
8f7dff5c2c
Merge pull request #19378 from peppy/beatmap-update-test
...
Add separate beatmap update flow to handle edge cases better
2022-07-26 18:49:20 +09:00
Salman Ahmed
a4f6f2b9eb
Make item ID comparer static
2022-07-26 09:55:37 +03:00
Dean Herbert
8370ca9765
Add ImportAsUpdate
method to IModelImporter
to avoid otehr changes
2022-07-26 15:49:04 +09:00
Salman Ahmed
693ac8750c
Remove remaining uses of "child" terminology in non-drawable components
2022-07-26 09:43:47 +03:00
Salman Ahmed
d7ef4170be
Maintain sort stability by using carousel item ID as fallback
2022-07-26 09:40:41 +03:00
Dean Herbert
b7f6413bce
Fix old version of beatmap potentially not being deleted during update flow
...
This can happen if the online IDs are not present in the `.osu` files.
Previously this was only working due to the early logic in the import
process (that relies on matching all online IDs perfectly).
2022-07-25 19:51:19 +09:00
Salman Ahmed
3aecd288e2
Enable NRT on TopLocalRank
2022-07-23 09:27:03 +03:00
Salman Ahmed
1d0306810a
Fix TopLocalRank
not handling legacy scores properly
2022-07-23 09:24:38 +03:00
Salman Ahmed
727fe76b60
Fix TopLocalRank
hacking around presence to hide on null rank
...
Fixed this here because that blocks `Schedule` from running, and I don't
want to add another override to the `IsPresent` flag.
2022-07-23 09:22:22 +03:00
Dean Herbert
3cfe624af1
Fix one more missed method with incorrect terminology
2022-07-21 16:16:41 +09:00
Dean Herbert
a05d7f4d8c
Change carousel terminology to not use Children
/ InternalChildren
2022-07-21 16:06:06 +09:00
Dan Balasescu
2b399ec7ad
Merge branch 'master' into date-submitted-ranked
2022-07-20 18:36:57 +09:00
Dan Balasescu
de29078db2
Remove nullable disables
2022-07-20 15:16:40 +09:00
Dean Herbert
30daa0fd44
Add ranked and submitted date storage and filtering
2022-07-19 19:55:56 +09:00
Dean Herbert
17046b0553
Add basic handling of download failures
2022-07-19 19:01:23 +09:00
Dean Herbert
a16bf35581
Rename button class and add basic progress display
2022-07-19 18:29:36 +09:00
Dean Herbert
da360af15a
Fix vertical centering of button
2022-07-19 18:29:36 +09:00
Dean Herbert
eaf4f6dbb7
Add beatmap update button
2022-07-19 18:29:36 +09:00
Salman Ahmed
102d0415f1
Merge branch 'master' into drawable-playlist-item-collection
2022-07-14 00:10:49 +03:00
Dean Herbert
fc274629f8
Add "last played" sort mode to song select
...
Note that this will consider the most recent play of any beatmap in
beatmap set groups for now, similar to other sort methods.
2022-07-13 16:43:43 +09:00
Salman Ahmed
a94fb62be3
Split collection toggle menu item to own class
2022-07-08 01:39:45 +03:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511
Merge branch 'master' into c-sharp-10
2022-06-24 21:22:33 +09:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Dean Herbert
28837693e5
Nuke calculating everything
...
The whole component is pointless so I'm just going to nuke for now I
guess. Kind of makes the whole refactor effort pointless but oh well?
To expand on this, the implementation was actually incorrect as pointed
out at https://github.com/ppy/osu/pull/18819#pullrequestreview-1017886035 .
2022-06-24 14:24:06 +09:00
Dean Herbert
01da6f20b3
Tidy up all remaining usages
2022-06-23 19:27:35 +09:00
Dean Herbert
7dec530ca5
Split out simple DifficultyIcon
with no calculation overhead and update usages
2022-06-23 19:27:35 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
4a5e86e451
Rename Beatmaps
to BeatmapHashes
for clarity
2022-06-10 14:03:51 +09:00
Dean Herbert
42cd7d9e6e
Change CollectionManager
to only store MD5 hashes instead of full BeatmapInfo
2022-06-08 18:23:09 +09:00
Joseph Madamba
4b54fedd88
Add back hide common string using new ToSentence()
extension method
2022-06-03 20:09:20 -07:00
Dean Herbert
999b4505d1
Remove localisation of "hide" string to fix incorrect case
2022-04-24 16:37:11 +09:00
Joseph Madamba
5e5c8e78a6
Use existing web localisation for most hardcoded strings
2022-04-20 16:31:11 -07:00
Dean Herbert
e315313266
Split out IDialogOverlay
to allow for easier testing
2022-04-18 18:36:26 +09:00
Dean Herbert
520d2d6cfa
Fix beatmap carousel panels accepting input while marked as not-visible
...
This is an issue as carousel panels manage their own animated state. If
they are marked as not-visible (done at a higher level, from filtering
or update pathways) but clicked while fading out, they will animate back
to a visible state but not be marked as visible.
No tests for this one as it's probably not worthwhile to test (and hard
to do so). Manual testing can be done with the following patch:
```diff
diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs
b/osu.Game/Screens/Select/BeatmapCarousel.cs
index c3d340ac61..3372242acc 100644
--- a/osu.Game/Screens/Select/BeatmapCarousel.cs
+++ b/osu.Game/Screens/Select/BeatmapCarousel.cs
@@ -255,7 +255,7 @@ private void
beatmapSetsChanged(IRealmCollection<BeatmapSetInfo> sender, ChangeS
}
foreach (int i in changes.NewModifiedIndices)
- UpdateBeatmapSet(sender[i].Detach());
+ Scheduler.AddDelayed(() =>
UpdateBeatmapSet(sender[i].Detach()), 100, true);
foreach (int i in changes.InsertedIndices)
UpdateBeatmapSet(sender[i].Detach());
```
- Enter gameplay and adjust beatmap offset then return to song select
and click the flashing panel.
OR
- Enter editor and save then return to song select and click the
flashing panel.
Closes https://github.com/ppy/osu/discussions/17171 .
2022-03-09 16:08:52 +09:00
Dean Herbert
da29947ecd
Disallow interaction with carousel set difficulty icons unless selected
...
I kinda liked this flow, but from multiple reports from users it
definitely seems in the way. We can revisit after the new design is
applied to song select.
Note that this means the tooltips also don't display. If it is preferred
that they should (arguable from a UX perspective, since I'd expect to be
able to click at that point) then the issue can be addressed using a
slightly different path (a few more lines - nothing too complex).
2022-03-07 11:34:08 +09:00
Salman Ahmed
6f0e32826c
Standardise ordering/grouping of IRulesetInfo
/RulesetInfo
s
2022-02-11 04:27:11 +03:00
Dean Herbert
eb25730b61
Revert "Merge pull request #16716 from peppy/carousel-less-invalidations"
...
This reverts commit 8d13e0514b
, reversing
changes made to 95582a9023
.
2022-02-05 16:12:58 +09:00
Dean Herbert
6bc6675fa1
Adjust fade in times slightly
2022-01-31 14:46:20 +09:00
Dean Herbert
8917ab78f4
Reduce unnecessary container nesting and adjust empty state opacity slightly
2022-01-31 14:46:20 +09:00
Dean Herbert
2ee0db0ebf
Move fade in function local
2022-01-31 14:46:20 +09:00
Dean Herbert
c3e3b2019d
Reduce overhead of ApplyState
by tracking previous values
...
Even with pooling applied, there are overheads involved with transforms
when quickly cycling through the carousel.
The main goal here is to reduce the transforms in cases the reuse is
still in the same state. Avoiding firing `FadeIn` and `FadeOut` are the
main areas of saving.
2022-01-31 14:46:20 +09:00
Dean Herbert
a06287e76a
Remove DrawableCarouselItem.Update
updating of height
...
Marginal from a performance aspect, but reads better.
2022-01-31 14:46:20 +09:00
Dean Herbert
7af23328a4
Merge branch 'master' into ruleset-ordering-fix
2022-01-27 21:46:03 +09:00
Dean Herbert
3ae5973ab7
Fix compilation error due to commit split
2022-01-27 17:08:31 +09:00
Dean Herbert
5637fd64d6
Perform ordering using IComparable
instead
2022-01-27 15:59:20 +09:00
Dean Herbert
5288eedd31
Update all usages of RulesetID
and Ruleset.ID
to use Ruleset.OnlineID
2022-01-27 15:38:03 +09:00
Dean Herbert
f30d63107a
Add SortID
to RulesetInfo
to allow stable ordering of rulesets for display
2022-01-27 15:35:16 +09:00
Dean Herbert
f70e10e8a4
Fix ruleset filter matching using OnlineID
instead of ShortName
2022-01-27 01:25:57 +09:00
Derrick Timmermans
873d367615
Fix custom rulesets not being able to convert maps
2022-01-26 15:51:39 +01:00
Dean Herbert
473c4d00ca
Fix grouped difficulty icons using incorrect lookup for ruleset grouping
2022-01-26 18:38:44 +09:00
Dean Herbert
d7342880f5
Update remaining cases of clashes with realm.Write
and realm.RegisterForNotifications
2022-01-25 13:09:48 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
40aa873190
Rename register methods to better explain their purpose
2022-01-24 14:37:36 +09:00
Dean Herbert
e9e3e024a1
Update all usages of QueryAsyncWithNotifications
to use new Register
pathway
2022-01-23 20:28:04 +09:00
Dean Herbert
1f157d729d
Update existing subscriptions to new style
...
Fix missing detach calls in `MusicController`
2022-01-21 20:05:03 +09:00
Dean Herbert
ff4f40db8a
Merge branch 'master' into carousel-performance-n
2022-01-21 15:27:42 +09:00
Dan Balasescu
c4f24ef96c
Merge pull request #16542 from peppy/carousel-search-performance-less-simple
...
Avoid performing full filter when updating carousel beatmap sets
2022-01-21 15:05:30 +09:00
Dean Herbert
bed7b69464
Apply NRT to CarouselGroup
2022-01-21 13:26:29 +09:00
Dean Herbert
5b24800b0e
Avoid applying filter in UpdateBeatmapSet
flow
2022-01-21 13:26:25 +09:00
Dean Herbert
45bf35c425
Avoid performing keyword filtering at song select unless keywords are specified
2022-01-21 12:26:24 +09:00
Dean Herbert
9a864267d2
Fix CarouselGroupEagerSelect
not invoking subclassed AddChild
from AddChildren
calls
2022-01-20 21:57:16 +09:00
Dan Balasescu
581873f944
Merge pull request #16497 from peppy/top-local-rank-optimisation
...
Rewrite `TopLocalRank` to use realm subscriptions
2022-01-19 14:22:12 +09:00
Dean Herbert
9be5bf38c6
Simplify binding/invalidation in TopLocalRank
2022-01-19 13:20:52 +09:00
Dean Herbert
7f65f3a47f
Remove all usage of BaseDifficulty
(and access Difficulty
instead)
2022-01-18 22:57:39 +09:00
Dean Herbert
f5b8653491
Add spaces to query string
2022-01-18 19:28:09 +09:00
Dean Herbert
27ea37c690
Rewrite TopLocalRank
to use realm subscriptions
...
This addresses the number one performance concern with realm (when
entering song select). Previous logic was causing instantiation and
property reads of every score in the database due to the `AsEnumerable`
specfication.
2022-01-18 18:17:53 +09:00
Dean Herbert
eb70a1eeb7
Replace compatibility properties with direct references
2022-01-12 18:13:14 +09:00
Dean Herbert
6919df18fa
Fix incorrect ordering and grouping of difficulties at song select
2022-01-12 17:00:17 +09:00
Dean Herbert
de3a338d02
Update realm queries to use Filter
to allow for indirect property filtering
2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520
Fix some null inspections
2022-01-12 17:00:16 +09:00
Dean Herbert
6d60aa7d9c
Replace TopLocalRank
event flow with realm subscriptions
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
4f6a05ce3d
Reimplement all query methods
2022-01-12 16:57:27 +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
213d89b479
Update null fallback cases involving OnlineID
2022-01-12 16:39:36 +09:00
Dean Herbert
02d8a6359a
Update FilterMatchingTest
and filter code to use ruleset's OnlineID
...
The tests were relying on the `RulesetID` being set to 0 in the example
beatmap, even though the ruleset *instance* was set to ID 5.
This explicitly adds that 0 value to show intent, and also removes the
incorrect specification of 5 (which would cause the convert filter tests
to fail).
Also updates the filter code to use `OnlineID`, which is required in
realm changes.
2022-01-10 12:30:34 +09:00
Dean Herbert
7c2e79f911
Update all simple cases of switching to IWorkingBeatmap
2021-11-17 20:56:57 +09:00
Dean Herbert
d2d66766d4
Merge branch 'master' into songselect-audio-improvements
2021-11-12 19:40:04 +09:00
Dean Herbert
692e846acd
Rename BeatmapSetInfo.OnlineBeatmapSetID
to OnlineID
to match interface
2021-11-12 17:52:44 +09:00
Dean Herbert
6a098a8634
Rename BeatmapInfo.OnlineBeatmapID
to OnlineID
to match interface
2021-11-12 17:46:24 +09:00
Dean Herbert
51a353e12d
Rename BeatmapInfo.Version
to DifficultyName
to match underlying interface
2021-11-11 17:20:53 +09:00
Dean Herbert
ebe58cee11
Rename BeatmapInfo.StarDifficulty
to StarRating
to match underlying interface
2021-11-11 17:19:46 +09:00
Jamie Taylor
6dc13ef396
Use default hover sample instead of song-ping (they're the same sample anyway)
2021-11-10 17:14:20 +09:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events
2021-11-08 13:35:49 +09:00
Dean Herbert
62600b47b1
Merge branch 'master' into user-class-cleanup
2021-11-08 12:51:12 +09:00
Dean Herbert
54f72d68ca
Revert weird event flow in model manager/importers
2021-11-05 19:12:49 +09:00
Dean Herbert
6399c695e8
Update usages of BufferedContainer
in line with framework changes
2021-11-05 15:54:49 +09:00
Dean Herbert
ed07ee8c61
Update all existing usages of AuthorString
/AuthorId
...
Unfortunately the getters need to be left in place else EF breaks.
2021-11-04 18:59:37 +09:00
Dean Herbert
86540d1fb6
Update existing usages of Author
as string
to access Username
directly
2021-11-04 18:57:54 +09:00
Dean Herbert
d1e6d1cb98
Update some other missed incorrect null/empty usages
2021-11-04 14:50:43 +09:00
Dean Herbert
67d9590a79
Fix new inspections
2021-11-04 14:02:09 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Bartłomiej Dach
6802e9ec10
Remove FixedWidth
and add AutoSizeAxes
specs to all usages
2021-10-25 20:24:48 +02:00
Dean Herbert
d3b9660148
Move common interface implementations to extension methods
2021-10-05 14:41:14 +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
Endrik Tombak
43e8e3e922
Add comments to GetNextToSelect()
2021-08-27 18:16:53 +03:00
Endrik Tombak
8bd7837bf7
Fix off-by-one skip amount
2021-08-26 19:29:58 +03:00
Endrik Tombak
a8d869c31c
Replace SkipWhile()
LINQ with a while loop
2021-08-26 18:31:19 +03:00
Endrik Tombak
b484bd1af3
Rename parameter and remove redundant parentheses
2021-08-25 22:43:58 +03:00
Endrik Tombak
52a243afca
Don't select random beatmap when previous was filtered
2021-08-25 22:03:07 +03:00
Gagah Pangeran Rosfatiputra
2b1d3c8e9c
add od filter in search filter
2021-06-26 21:05:01 +07:00
Dean Herbert
046087a367
Fix access to AliveChildren
before IsLoaded
2021-05-27 16:58:01 +09:00
Dean Herbert
b3b39c4c13
Fix BeatmapCarousel
accessing ScreenSpaceDrawQuad
of non-loaded children
...
Fixes failure seen at
https://ci.appveyor.com/project/peppy/osu/builds/39302762/tests .
2021-05-26 15:42:27 +09:00
Dean Herbert
df5970fab4
Create base implementations of the two most common TernaryStateMenuItem
s
2021-05-20 19:34:53 +09:00
Joseph Madamba
a21718f1cd
Move source case to a better spot
2021-05-09 14:26:45 -07:00
Joseph Madamba
8964d51de9
Add ability to sort by source in song select
2021-05-09 14:10:38 -07:00
Jamie Taylor
ffacd38e57
Reduce the randomised pitch range of hover sounds
2021-04-09 23:03:14 +09:00
Bartłomiej Dach
42c3309d49
Use ruleset criteria in parsing and filtering
2021-03-02 20:11:21 +01:00
Dan Balasescu
46ea0f44eb
Merge branch 'master' into beatmap-difficulty-cache-nullable
2021-02-25 22:52:15 +09:00
Dean Herbert
03771ce8ec
Allow determining a BeatmapDifficultyCache's bindable return's completion state via nullability
2021-02-25 16:19:01 +09:00
Dean Herbert
e82eaffaed
Flip order back to original for romanisable strings
2021-02-25 14:14:07 +09:00
Dean Herbert
8a97e2e28d
Update LocalisedString usages to RomanisedString
2021-02-22 19:01:42 +09:00
Dean Herbert
1fd76ea3fb
Apply changes to UI components overriding functions with changing signatures
2021-02-22 19:01:42 +09:00
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