1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 03:27:24 +08:00

Apply some initial optimisations to PlaylistItem

This commit is contained in:
Dean Herbert 2022-01-22 01:18:29 +09:00
parent 8a4f3a7ce0
commit ace2bd2208

View File

@ -32,8 +32,6 @@ namespace osu.Game.Overlays.Music
: base(item) : base(item)
{ {
Padding = new MarginPadding { Left = 5 }; Padding = new MarginPadding { Left = 5 };
FilterTerms = item.Metadata.GetSearchableTerms();
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
@ -46,6 +44,25 @@ namespace osu.Game.Overlays.Music
{ {
base.LoadComplete(); base.LoadComplete();
var metadata = Model.Metadata;
var title = new RomanisableString(metadata.TitleUnicode, metadata.Title);
var artist = new RomanisableString(metadata.ArtistUnicode, metadata.Artist);
titlePart = text.AddText(title, sprite => sprite.Font = OsuFont.GetFont(weight: FontWeight.Regular));
updateSelectionState(true);
titlePart.DrawablePartsRecreated += _ => updateSelectionState(true);
text.AddText(@" "); // to separate the title from the artist.
text.AddText(artist, sprite =>
{
sprite.Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold);
sprite.Colour = colours.Gray9;
sprite.Padding = new MarginPadding { Top = 1 };
});
SelectedSet.BindValueChanged(set => SelectedSet.BindValueChanged(set =>
{ {
if (set.OldValue?.Equals(Model) != true && set.NewValue?.Equals(Model) != true) if (set.OldValue?.Equals(Model) != true && set.NewValue?.Equals(Model) != true)
@ -67,27 +84,6 @@ namespace osu.Game.Overlays.Music
AutoSizeAxes = Axes.Y, AutoSizeAxes = Axes.Y,
}; };
protected override void LoadAsyncComplete()
{
base.LoadAsyncComplete();
var title = new RomanisableString(Model.Metadata.TitleUnicode, Model.Metadata.Title);
var artist = new RomanisableString(Model.Metadata.ArtistUnicode, Model.Metadata.Artist);
titlePart = text.AddText(title, sprite => sprite.Font = OsuFont.GetFont(weight: FontWeight.Regular));
updateSelectionState(true);
titlePart.DrawablePartsRecreated += _ => updateSelectionState(true);
text.AddText(@" "); // to separate the title from the artist.
text.AddText(artist, sprite =>
{
sprite.Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold);
sprite.Colour = colours.Gray9;
sprite.Padding = new MarginPadding { Top = 1 };
});
}
protected override bool OnClick(ClickEvent e) protected override bool OnClick(ClickEvent e)
{ {
RequestSelection?.Invoke(Model); RequestSelection?.Invoke(Model);
@ -109,7 +105,7 @@ namespace osu.Game.Overlays.Music
} }
} }
public IEnumerable<string> FilterTerms { get; } public IEnumerable<string> FilterTerms => Model.Metadata.GetSearchableTerms();
private bool matchingFilter = true; private bool matchingFilter = true;