1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-16 17:03:18 +08:00

Disable beatmap card expansion on solo spectator screen

This commit is contained in:
Bartłomiej Dach 2021-12-05 17:16:41 +01:00
parent af10223ac4
commit af35652b8b
No known key found for this signature in database
GPG Key ID: BCECCD4FA41F6497
3 changed files with 30 additions and 6 deletions

View File

@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using NUnit.Framework; using NUnit.Framework;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
@ -253,7 +254,13 @@ namespace osu.Game.Tests.Visual.Beatmaps
{ {
createTestCase(beatmapSetInfo => new BeatmapCard(beatmapSetInfo)); createTestCase(beatmapSetInfo => new BeatmapCard(beatmapSetInfo));
AddToggleStep("toggle expanded state", expanded => this.ChildrenOfType<BeatmapCard>().Last().Expanded.Value = expanded); AddToggleStep("toggle expanded state", expanded =>
{
var card = this.ChildrenOfType<BeatmapCard>().Last();
if (!card.Expanded.Disabled)
card.Expanded.Value = expanded;
});
AddToggleStep("disable/enable expansion", disabled => this.ChildrenOfType<BeatmapCard>().ForEach(card => card.Expanded.Disabled = disabled));
} }
} }
} }

View File

@ -109,23 +109,34 @@ namespace osu.Game.Beatmaps.Drawables.Cards
public void ScheduleShow() public void ScheduleShow()
{ {
scheduledExpandedChange?.Cancel(); scheduledExpandedChange?.Cancel();
if (Expanded.Value) if (Expanded.Disabled || Expanded.Value)
return; return;
scheduledExpandedChange = Scheduler.AddDelayed(() => Expanded.Value = true, 100); scheduledExpandedChange = Scheduler.AddDelayed(() =>
{
if (!Expanded.Disabled)
Expanded.Value = true;
}, 100);
} }
public void ScheduleHide() public void ScheduleHide()
{ {
scheduledExpandedChange?.Cancel(); scheduledExpandedChange?.Cancel();
if (!Expanded.Value) if (Expanded.Disabled || !Expanded.Value)
return; return;
scheduledExpandedChange = Scheduler.AddDelayed(() => Expanded.Value = false, 500); scheduledExpandedChange = Scheduler.AddDelayed(() =>
{
if (!Expanded.Disabled)
Expanded.Value = false;
}, 500);
} }
private void checkForHide() private void checkForHide()
{ {
if (Expanded.Disabled)
return;
if (content.IsHovered || dropdownContent.IsHovered) if (content.IsHovered || dropdownContent.IsHovered)
return; return;
@ -135,6 +146,9 @@ namespace osu.Game.Beatmaps.Drawables.Cards
private void keep() private void keep()
{ {
if (Expanded.Disabled)
return;
scheduledExpandedChange?.Cancel(); scheduledExpandedChange?.Cancel();
Expanded.Value = true; Expanded.Value = true;
} }

View File

@ -228,7 +228,10 @@ namespace osu.Game.Screens.Play
onlineBeatmapRequest.Success += beatmapSet => Schedule(() => onlineBeatmapRequest.Success += beatmapSet => Schedule(() =>
{ {
this.beatmapSet = beatmapSet; this.beatmapSet = beatmapSet;
beatmapPanelContainer.Child = new BeatmapCard(this.beatmapSet); beatmapPanelContainer.Child = new BeatmapCard(this.beatmapSet)
{
Expanded = { Disabled = true }
};
checkForAutomaticDownload(); checkForAutomaticDownload();
}); });