1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-12 18:52:57 +08:00

Simplify selection handling logic

This commit is contained in:
Dean Herbert 2025-01-23 23:58:51 +09:00
parent d5369d3508
commit f4270ab3b9
No known key found for this signature in database

View File

@ -92,19 +92,6 @@ namespace osu.Game.Screens.SelectV2
#region Selection handling #region Selection handling
protected override void HandleItemDeselected(object? model)
{
base.HandleItemDeselected(model);
var deselectedSet = model as BeatmapSetInfo ?? (model as BeatmapInfo)?.BeatmapSet;
if (grouping.SetItems.TryGetValue(deselectedSet!, out var group))
{
foreach (var i in group)
i.IsVisible = false;
}
}
protected override void HandleItemSelected(object? model) protected override void HandleItemSelected(object? model)
{ {
base.HandleItemSelected(model); base.HandleItemSelected(model);
@ -116,15 +103,24 @@ namespace osu.Game.Screens.SelectV2
return; return;
} }
var currentSelectionSet = (model as BeatmapInfo)?.BeatmapSet; if (model is BeatmapInfo beatmapInfo)
setVisibilityOfSetItems(beatmapInfo.BeatmapSet!, true);
}
if (currentSelectionSet == null) protected override void HandleItemDeselected(object? model)
return; {
base.HandleItemDeselected(model);
if (grouping.SetItems.TryGetValue(currentSelectionSet, out var group)) if (model is BeatmapInfo beatmapInfo)
setVisibilityOfSetItems(beatmapInfo.BeatmapSet!, false);
}
private void setVisibilityOfSetItems(BeatmapSetInfo set, bool visible)
{
if (grouping.SetItems.TryGetValue(set, out var group))
{ {
foreach (var i in group) foreach (var i in group)
i.IsVisible = true; i.IsVisible = visible;
} }
} }