diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index 850e736edb..224d944ac4 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -295,6 +295,7 @@ namespace osu.Game musicController.State = Visibility.Hidden; chat.State = Visibility.Hidden; direct.State = Visibility.Hidden; + social.State = Visibility.Hidden; } else { diff --git a/osu.Game/Overlays/Browse/BrowseFilterControl.cs b/osu.Game/Overlays/Browse/BrowseFilterControl.cs index d21c36bd5c..a395c1c01d 100644 --- a/osu.Game/Overlays/Browse/BrowseFilterControl.cs +++ b/osu.Game/Overlays/Browse/BrowseFilterControl.cs @@ -24,7 +24,7 @@ namespace osu.Game.Overlays.Browse protected abstract Color4 BackgroundColour { get; } protected abstract T DefaultTab { get; } - protected virtual Drawable CreateControls() => null; //todo: naming + protected virtual Drawable CreateSupplementaryControls() => null; public BrowseFilterControl() { @@ -34,7 +34,7 @@ namespace osu.Game.Overlays.Browse RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; - var controls = CreateControls(); + var controls = CreateSupplementaryControls(); Container controlsContainer; Children = new Drawable[] { diff --git a/osu.Game/Overlays/Direct/FilterControl.cs b/osu.Game/Overlays/Direct/FilterControl.cs index 20e9eb4aa1..bc82352c33 100644 --- a/osu.Game/Overlays/Direct/FilterControl.cs +++ b/osu.Game/Overlays/Direct/FilterControl.cs @@ -17,11 +17,11 @@ namespace osu.Game.Overlays.Direct { private FillFlowContainer modeButtons; - public readonly DisplayStyleControl DisplayStyleControl; //todo: naming + public readonly DisplayStyleControl DisplayStyleControl; protected override Color4 BackgroundColour => OsuColour.FromHex(@"384552"); protected override DirectSortCritera DefaultTab => DirectSortCritera.Title; - protected override Drawable CreateControls() + protected override Drawable CreateSupplementaryControls() { modeButtons = new FillFlowContainer { diff --git a/osu.Game/Overlays/DirectOverlay.cs b/osu.Game/Overlays/DirectOverlay.cs index 9ab19aa6f9..d4522e227b 100644 --- a/osu.Game/Overlays/DirectOverlay.cs +++ b/osu.Game/Overlays/DirectOverlay.cs @@ -13,6 +13,7 @@ using osu.Game.Graphics.Sprites; using osu.Game.Overlays.Direct; using osu.Game.Overlays.Browse; using OpenTK.Graphics; +using System; namespace osu.Game.Overlays { @@ -40,7 +41,9 @@ namespace osu.Game.Overlays if (beatmapSets?.Equals(value) ?? false) return; beatmapSets = value; - recreatePanels((Filter as FilterControl).DisplayStyleControl.DisplayStyle.Value); //todo: potential nullref + var s = PanelDisplayStyle.Grid; + withDisplayStyleControl(c => s = c.DisplayStyle.Value); + recreatePanels(s); } } @@ -100,7 +103,7 @@ namespace osu.Game.Overlays Header.Tabs.Current.ValueChanged += tab => { if (tab != DirectTab.Search) Filter.Search.Text = string.Empty; }; Filter.Search.Current.ValueChanged += text => { if (text != string.Empty) Header.Tabs.Current.Value = DirectTab.Search; }; - (Filter as FilterControl).DisplayStyleControl.DisplayStyle.ValueChanged += recreatePanels; //todo: potential nullref + withDisplayStyleControl(c => c.DisplayStyle.ValueChanged += recreatePanels); updateResultCounts(); } @@ -132,6 +135,12 @@ namespace osu.Game.Overlays panels.Children = BeatmapSets.Select(b => displayStyle == PanelDisplayStyle.Grid ? (DirectPanel)new DirectGridPanel(b) { Width = 400 } : new DirectListPanel(b)); } + private void withDisplayStyleControl(Action> action) + { + var f = (Filter as FilterControl); + if (f != null) action.Invoke(f.DisplayStyleControl); + } + public class ResultCounts { public readonly int Artists;