From f5716c3d213c3d6e4ed597aa18116a9372cb5cee Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 14 Oct 2018 01:03:04 +0900 Subject: [PATCH] Add ability to change best of, add and delete groupings --- .../TestCaseGroupingManager.cs | 44 ++++++++++++++++--- .../Ladder/Components/TournamentGrouping.cs | 2 +- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/osu.Game.Tournament.Tests/TestCaseGroupingManager.cs b/osu.Game.Tournament.Tests/TestCaseGroupingManager.cs index e9df1eb62e..a0a4dfdc8b 100644 --- a/osu.Game.Tournament.Tests/TestCaseGroupingManager.cs +++ b/osu.Game.Tournament.Tests/TestCaseGroupingManager.cs @@ -1,8 +1,10 @@ // Copyright (c) 2007-2018 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE +using System.Linq; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; +using osu.Game.Graphics.UserInterface; using osu.Game.Overlays.Settings; using osu.Game.Tournament.Screens.Ladder.Components; @@ -10,20 +12,43 @@ namespace osu.Game.Tournament.Tests { public class TestCaseGroupingManager : LadderTestCase { + private readonly FillFlowContainer items; + public TestCaseGroupingManager() { - FillFlowContainer items; - - Add(items = new FillFlowContainer + Add(new FillFlowContainer { Direction = FillDirection.Vertical, - RelativeSizeAxes = Axes.Both + RelativeSizeAxes = Axes.Both, + Children = new Drawable[] + { + items = new FillFlowContainer + { + Direction = FillDirection.Vertical, + RelativeSizeAxes = Axes.X, + AutoSizeAxes = Axes.Y, + }, + new TriangleButton + { + Width = 100, + Text = "Add", + Action = addNew + }, + } }); foreach (var g in Ladder.Groupings) items.Add(new GroupingRow(g)); } + protected override void SaveChanges() + { + Ladder.Groupings = items.Children.Select(c => c.Grouping).ToList(); + base.SaveChanges(); + } + + private void addNew() => items.Add(new GroupingRow(new TournamentGrouping())); + public class GroupingRow : CompositeDrawable { public readonly TournamentGrouping Grouping; @@ -39,8 +64,15 @@ namespace osu.Game.Tournament.Tests RelativeSizeAxes = Axes.Both, Children = new Drawable[] { - new SettingsTextBox { Width = 0.4f, Bindable = Grouping.Name }, - new SettingsTextBox { Width = 0.4f, Bindable = Grouping.Description }, + new SettingsTextBox { Width = 0.3f, Bindable = Grouping.Name }, + new SettingsTextBox { Width = 0.3f, Bindable = Grouping.Description }, + new SettingsSlider { LabelText = "Best of", Width = 0.3f, Bindable = Grouping.BestOf }, + new DangerousSettingsButton + { + Width = 0.1f, + Text = "Delete", + Action = () => Expire() + }, } } }; diff --git a/osu.Game.Tournament/Screens/Ladder/Components/TournamentGrouping.cs b/osu.Game.Tournament/Screens/Ladder/Components/TournamentGrouping.cs index 2e72e1fe06..d7c89cb006 100644 --- a/osu.Game.Tournament/Screens/Ladder/Components/TournamentGrouping.cs +++ b/osu.Game.Tournament/Screens/Ladder/Components/TournamentGrouping.cs @@ -11,7 +11,7 @@ namespace osu.Game.Tournament.Screens.Ladder.Components public readonly Bindable Name = new Bindable(); public readonly Bindable Description = new Bindable(); - public int BestOf; + public readonly BindableInt BestOf = new BindableInt(9) { Default = 9, MinValue = 3, MaxValue = 23 }; public List Pairings = new List(); }