From 5852657205892c393fdb7d08bf4c57eadba97592 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Mon, 30 Jan 2017 22:35:09 -0500 Subject: [PATCH] Refactor out Hidden Also fixes a bug I didn't think about before --- osu.Game/Beatmaps/Drawables/BeatmapGroup.cs | 25 ++++++++------------ osu.Game/Screens/Select/CarouselContainer.cs | 6 ++--- osu.Game/Screens/Select/PlaySongSelect.cs | 8 +++---- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/osu.Game/Beatmaps/Drawables/BeatmapGroup.cs b/osu.Game/Beatmaps/Drawables/BeatmapGroup.cs index 1994083805..7bb855eed5 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapGroup.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapGroup.cs @@ -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, } } diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index 5337255bbf..5f431e4a88 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -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 diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 24ad7974e7..5570af73af 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -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)