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:
parent
d5369d3508
commit
f4270ab3b9
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user