Refactor out Hidden

Also fixes a bug I didn't think about before
This commit is contained in:
Drew DeVault 2017-01-30 22:35:09 -05:00
parent 8d294a4eca
commit 5852657205
3 changed files with 17 additions and 22 deletions

View File

@ -33,28 +33,16 @@ namespace osu.Game.Beatmaps.Drawables
public BeatmapSetInfo BeatmapSet;
private bool hidden;
public bool Hidden
{
get { return hidden; }
set
{
hidden = value;
Header.Alpha = hidden ? 0 : 1;
if (hidden)
State = BeatmapGroupState.Collapsed;
}
}
public BeatmapGroupState State
{
get { return state; }
set
{
state = value;
switch (state)
switch (value)
{
case BeatmapGroupState.Expanded:
if (state == BeatmapGroupState.Hidden)
Header.Alpha = 1;
foreach (BeatmapPanel panel in BeatmapPanels)
panel.FadeIn(250);
@ -63,14 +51,20 @@ namespace osu.Game.Beatmaps.Drawables
SelectedPanel.State = PanelSelectedState.Selected;
break;
case BeatmapGroupState.Collapsed:
case BeatmapGroupState.Hidden:
if (state == BeatmapGroupState.Hidden && state != value)
Header.Alpha = 1;
Header.State = PanelSelectedState.NotSelected;
if (SelectedPanel != null)
SelectedPanel.State = PanelSelectedState.NotSelected;
foreach (BeatmapPanel panel in BeatmapPanels)
panel.FadeOut(300, EasingTypes.OutQuint);
if (value == BeatmapGroupState.Hidden)
Header.Alpha = 0;
break;
}
state = value;
}
}
@ -127,5 +121,6 @@ namespace osu.Game.Beatmaps.Drawables
{
Collapsed,
Expanded,
Hidden,
}
}

View File

@ -119,7 +119,7 @@ namespace osu.Game.Screens.Select
foreach (BeatmapGroup group in groups)
{
movePanel(group.Header, !group.Hidden, ref currentY);
movePanel(group.Header, group.State != BeatmapGroupState.Hidden, ref currentY);
if (group.State == BeatmapGroupState.Expanded)
{
@ -134,10 +134,10 @@ namespace osu.Game.Screens.Select
panel.MoveToX(-50, 500, EasingTypes.OutExpo);
//on first display we want to begin hidden under our group's header.
if (panel.Alpha == 0 && !group.Hidden)
if (panel.Alpha == 0 && group.State != BeatmapGroupState.Hidden)
panel.MoveToY(headerY);
movePanel(panel, !group.Hidden, ref currentY);
movePanel(panel, group.State != BeatmapGroupState.Hidden, ref currentY);
}
}
else

View File

@ -208,15 +208,15 @@ namespace osu.Game.Screens.Select
|| (set.Metadata.TitleUnicode ?? "").IndexOf(search, StringComparison.InvariantCultureIgnoreCase) != -1;
if (match)
{
changed &= !beatmapGroup.Hidden;
beatmapGroup.Hidden = false;
changed |= beatmapGroup.State != BeatmapGroupState.Hidden;
beatmapGroup.State = BeatmapGroupState.Collapsed;
if (newSelection == null || beatmapGroup.BeatmapSet.OnlineBeatmapSetID == Beatmap.BeatmapSetInfo.OnlineBeatmapSetID)
newSelection = beatmapGroup;
}
else
{
changed &= beatmapGroup.Hidden;
beatmapGroup.Hidden = true;
changed |= beatmapGroup.State == BeatmapGroupState.Hidden;
beatmapGroup.State = BeatmapGroupState.Hidden;
}
}
if (newSelection != null)