diff --git a/osu.Game/Graphics/Containers/LinkFlowContainer.cs b/osu.Game/Graphics/Containers/LinkFlowContainer.cs
index 0b43c16ebe..7d1210d0e3 100644
--- a/osu.Game/Graphics/Containers/LinkFlowContainer.cs
+++ b/osu.Game/Graphics/Containers/LinkFlowContainer.cs
@@ -7,12 +7,10 @@
using osu.Framework.Allocation;
using osu.Framework.Graphics.Sprites;
using System.Collections.Generic;
-using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Localisation;
using osu.Framework.Platform;
-using osu.Game.Graphics.Sprites;
using osu.Game.Users;
namespace osu.Game.Graphics.Containers
@@ -58,23 +56,14 @@ public void AddLinks(string text, List links)
AddText(text.Substring(previousLinkEnd));
}
- public void AddLink(string text, string url, Action creationParameters = null) =>
+ public void AddLink(LocalisableString text, string url, Action creationParameters = null) =>
createLink(CreateChunkFor(text, true, CreateSpriteText, creationParameters), new LinkDetails(LinkAction.External, url), url);
- public void AddLink(string text, Action action, string tooltipText = null, Action creationParameters = null)
+ public void AddLink(LocalisableString text, Action action, string tooltipText = null, Action creationParameters = null)
=> createLink(CreateChunkFor(text, true, CreateSpriteText, creationParameters), new LinkDetails(LinkAction.Custom, string.Empty), tooltipText, action);
- public void AddLink(string text, LinkAction action, string argument, string tooltipText = null, Action creationParameters = null)
- => createLink(CreateChunkFor(text, true, CreateSpriteText, creationParameters), new LinkDetails(action, argument), tooltipText);
-
public void AddLink(LocalisableString text, LinkAction action, string argument, string tooltipText = null, Action creationParameters = null)
- {
- var spriteText = new OsuSpriteText { Text = text };
-
- AddText(spriteText, creationParameters);
- RemoveInternal(spriteText); // TODO: temporary, will go away when TextParts support localisation properly.
- createLink(new TextPartManual(spriteText.Yield()), new LinkDetails(action, argument), tooltipText);
- }
+ => createLink(CreateChunkFor(text, true, CreateSpriteText, creationParameters), new LinkDetails(action, argument), tooltipText);
public void AddLink(IEnumerable text, LinkAction action, string linkArgument, string tooltipText = null)
{
diff --git a/osu.Game/Screens/OnlinePlay/Components/BeatmapTitle.cs b/osu.Game/Screens/OnlinePlay/Components/BeatmapTitle.cs
index 2901758332..e948c1adae 100644
--- a/osu.Game/Screens/OnlinePlay/Components/BeatmapTitle.cs
+++ b/osu.Game/Screens/OnlinePlay/Components/BeatmapTitle.cs
@@ -7,7 +7,6 @@
using osu.Framework.Localisation;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
-using osu.Game.Graphics.Sprites;
using osu.Game.Online.Chat;
namespace osu.Game.Screens.OnlinePlay.Components
@@ -69,24 +68,14 @@ private void updateText()
}
else
{
- textFlow.AddLink(new[]
- {
- new OsuSpriteText
- {
- Text = new RomanisableString(beatmap.Value.Metadata.ArtistUnicode, beatmap.Value.Metadata.Artist),
- Font = OsuFont.GetFont(size: TextSize),
- },
- new OsuSpriteText
- {
- Text = " - ",
- Font = OsuFont.GetFont(size: TextSize),
- },
- new OsuSpriteText
- {
- Text = new RomanisableString(beatmap.Value.Metadata.TitleUnicode, beatmap.Value.Metadata.Title),
- Font = OsuFont.GetFont(size: TextSize),
- }
- }, LinkAction.OpenBeatmap, beatmap.Value.OnlineID.ToString(), "Open beatmap");
+ var metadataInfo = beatmap.Value.Metadata;
+
+ string artistUnicode = string.IsNullOrEmpty(metadataInfo.ArtistUnicode) ? metadataInfo.Artist : metadataInfo.ArtistUnicode;
+ string titleUnicode = string.IsNullOrEmpty(metadataInfo.TitleUnicode) ? metadataInfo.Title : metadataInfo.TitleUnicode;
+
+ var title = new RomanisableString($"{artistUnicode} - {titleUnicode}".Trim(), $"{metadataInfo.Artist} - {metadataInfo.Title}".Trim());
+
+ textFlow.AddLink(title, LinkAction.OpenBeatmap, beatmap.Value.OnlineID.ToString(), "Open beatmap");
}
}
}