mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 12:42:54 +08:00
Update UI components to use new grouping
This commit is contained in:
parent
32242f22de
commit
b8efc59cdc
@ -167,7 +167,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
private const float header_height = 20;
|
||||
|
||||
[Resolved]
|
||||
private Bindable<IEnumerable<ControlPoint>> selectedPoints { get; set; }
|
||||
private Bindable<ControlPointGroup> selectedPoints { get; set; }
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(OsuColour colours)
|
||||
@ -228,7 +228,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
|
||||
selectedPoints.BindValueChanged(points =>
|
||||
{
|
||||
ControlPoint.Value = points.NewValue?.OfType<T>().FirstOrDefault();
|
||||
ControlPoint.Value = points.NewValue?.ControlPoints.OfType<T>().FirstOrDefault();
|
||||
|
||||
checkbox.Current.Value = ControlPoint.Value != null;
|
||||
}, true);
|
||||
|
@ -27,7 +27,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
private readonly FillFlowContainer backgroundFlow;
|
||||
|
||||
[Resolved]
|
||||
private Bindable<IEnumerable<ControlPoint>> selectedPoints { get; set; }
|
||||
private Bindable<ControlPointGroup> selectedGroup { get; set; }
|
||||
|
||||
public ControlPointTable()
|
||||
{
|
||||
@ -46,7 +46,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
});
|
||||
}
|
||||
|
||||
public IEnumerable<ControlPoint> ControlPoints
|
||||
public IEnumerable<ControlPointGroup> ControlGroups
|
||||
{
|
||||
set
|
||||
{
|
||||
@ -56,15 +56,13 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
if (value?.Any() != true)
|
||||
return;
|
||||
|
||||
var grouped = value.GroupBy(cp => cp.Time, cp => cp);
|
||||
|
||||
foreach (var group in grouped)
|
||||
foreach (var group in value)
|
||||
{
|
||||
backgroundFlow.Add(new RowBackground { Action = () => selectedPoints.Value = group });
|
||||
backgroundFlow.Add(new RowBackground { Action = () => selectedGroup.Value = group });
|
||||
}
|
||||
|
||||
Columns = createHeaders();
|
||||
Content = grouped.Select((s, i) => createContent(i, s)).ToArray().ToRectangular();
|
||||
Content = value.Select((g, i) => createContent(i, g)).ToArray().ToRectangular();
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,7 +78,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
return columns.ToArray();
|
||||
}
|
||||
|
||||
private Drawable[] createContent(int index, IGrouping<double, ControlPoint> controlPoints) => new Drawable[]
|
||||
private Drawable[] createContent(int index, ControlPointGroup group) => new Drawable[]
|
||||
{
|
||||
new OsuSpriteText
|
||||
{
|
||||
@ -90,14 +88,14 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
},
|
||||
new OsuSpriteText
|
||||
{
|
||||
Text = $"{controlPoints.Key:n0}ms",
|
||||
Text = $"{group.Time:n0}ms",
|
||||
Font = OsuFont.GetFont(size: text_size, weight: FontWeight.Bold)
|
||||
},
|
||||
new FillFlowContainer
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Direction = FillDirection.Horizontal,
|
||||
ChildrenEnumerable = controlPoints.Select(createAttribute).Where(c => c != null),
|
||||
ChildrenEnumerable = group.ControlPoints.Select(createAttribute).Where(c => c != null),
|
||||
Padding = new MarginPadding(10),
|
||||
Spacing = new Vector2(10)
|
||||
},
|
||||
|
@ -1,8 +1,6 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
@ -21,7 +19,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
public class TimingScreen : EditorScreenWithTimeline
|
||||
{
|
||||
[Cached]
|
||||
private Bindable<IEnumerable<ControlPoint>> selectedPoints = new Bindable<IEnumerable<ControlPoint>>();
|
||||
private Bindable<ControlPointGroup> selectedPoints = new Bindable<ControlPointGroup>();
|
||||
|
||||
[Resolved]
|
||||
private IAdjustableClock clock { get; set; }
|
||||
@ -48,7 +46,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
{
|
||||
base.LoadComplete();
|
||||
|
||||
selectedPoints.BindValueChanged(selected => { clock.Seek(selected.NewValue.First().Time); });
|
||||
selectedPoints.BindValueChanged(selected => { clock.Seek(selected.NewValue.Time); });
|
||||
}
|
||||
|
||||
public class ControlPointList : CompositeDrawable
|
||||
@ -59,7 +57,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
protected IBindable<WorkingBeatmap> Beatmap { get; private set; }
|
||||
|
||||
[Resolved]
|
||||
private Bindable<IEnumerable<ControlPoint>> selectedPoints { get; set; }
|
||||
private Bindable<ControlPointGroup> selectedPoints { get; set; }
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(OsuColour colours)
|
||||
@ -78,7 +76,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Child = new ControlPointTable
|
||||
{
|
||||
ControlPoints = Beatmap.Value.Beatmap.ControlPointInfo.AllControlPoints
|
||||
ControlGroups = Beatmap.Value.Beatmap.ControlPointInfo.Groups
|
||||
}
|
||||
},
|
||||
new FillFlowContainer
|
||||
|
Loading…
Reference in New Issue
Block a user