mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 13:22:55 +08:00
Disable edit button in playlists
This commit is contained in:
parent
87a5922f0e
commit
6dc96fdb83
@ -19,7 +19,6 @@ using osu.Game.Screens.OnlinePlay.Playlists;
|
||||
using osu.Game.Screens.Play;
|
||||
using osu.Game.Tests.Beatmaps;
|
||||
using osu.Game.Tests.Visual.OnlinePlay;
|
||||
using osu.Game.Users;
|
||||
using osuTK.Input;
|
||||
|
||||
namespace osu.Game.Tests.Visual.Playlists
|
||||
@ -66,7 +65,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
||||
{
|
||||
SelectedRoom.Value.RoomID.Value = 1;
|
||||
SelectedRoom.Value.Name.Value = "my awesome room";
|
||||
SelectedRoom.Value.Host.Value = new User { Id = 2, Username = "peppy" };
|
||||
SelectedRoom.Value.Host.Value = API.LocalUser.Value;
|
||||
SelectedRoom.Value.RecentParticipants.Add(SelectedRoom.Value.Host.Value);
|
||||
SelectedRoom.Value.EndDate.Value = DateTimeOffset.Now.AddMinutes(5);
|
||||
SelectedRoom.Value.Playlist.Add(new PlaylistItem
|
||||
@ -86,7 +85,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
||||
AddStep("set room properties", () =>
|
||||
{
|
||||
SelectedRoom.Value.Name.Value = "my awesome room";
|
||||
SelectedRoom.Value.Host.Value = new User { Id = 2, Username = "peppy" };
|
||||
SelectedRoom.Value.Host.Value = API.LocalUser.Value;
|
||||
SelectedRoom.Value.Playlist.Add(new PlaylistItem
|
||||
{
|
||||
Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo).BeatmapInfo },
|
||||
@ -137,7 +136,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
||||
AddStep("load room", () =>
|
||||
{
|
||||
SelectedRoom.Value.Name.Value = "my awesome room";
|
||||
SelectedRoom.Value.Host.Value = new User { Id = 2, Username = "peppy" };
|
||||
SelectedRoom.Value.Host.Value = API.LocalUser.Value;
|
||||
SelectedRoom.Value.Playlist.Add(new PlaylistItem
|
||||
{
|
||||
Beatmap = { Value = importedSet.Beatmaps[0] },
|
||||
|
@ -2,6 +2,7 @@
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
using JetBrains.Annotations;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
@ -22,31 +23,40 @@ namespace osu.Game.Screens.OnlinePlay.Match
|
||||
private IAPIProvider api { get; set; }
|
||||
|
||||
private readonly IBindable<User> host = new Bindable<User>();
|
||||
private readonly bool allowEdit;
|
||||
|
||||
[CanBeNull]
|
||||
private Drawable editButton;
|
||||
|
||||
public DrawableMatchRoom(Room room)
|
||||
public DrawableMatchRoom(Room room, bool allowEdit = true)
|
||||
: base(room)
|
||||
{
|
||||
this.allowEdit = allowEdit;
|
||||
|
||||
host.BindTo(room.Host);
|
||||
}
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load()
|
||||
{
|
||||
ButtonsContainer.Add(editButton = new PurpleTriangleButton
|
||||
if (allowEdit)
|
||||
{
|
||||
RelativeSizeAxes = Axes.Y,
|
||||
Size = new Vector2(100, 1),
|
||||
Text = "Edit",
|
||||
Action = () => OnEdit?.Invoke()
|
||||
});
|
||||
ButtonsContainer.Add(editButton = new PurpleTriangleButton
|
||||
{
|
||||
RelativeSizeAxes = Axes.Y,
|
||||
Size = new Vector2(100, 1),
|
||||
Text = "Edit",
|
||||
Action = () => OnEdit?.Invoke()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
protected override void LoadComplete()
|
||||
{
|
||||
base.LoadComplete();
|
||||
host.BindValueChanged(h => editButton.Alpha = h.NewValue?.Equals(api.LocalUser.Value) == true ? 1 : 0, true);
|
||||
|
||||
if (editButton != null)
|
||||
host.BindValueChanged(h => editButton.Alpha = h.NewValue?.Equals(api.LocalUser.Value) == true ? 1 : 0, true);
|
||||
}
|
||||
|
||||
protected override bool ShouldBeConsideredForInput(Drawable child) => true;
|
||||
|
@ -63,14 +63,21 @@ namespace osu.Game.Screens.OnlinePlay.Match
|
||||
protected IBindable<BeatmapAvailability> BeatmapAvailability => BeatmapAvailabilityTracker.Availability;
|
||||
|
||||
public readonly Room Room;
|
||||
private readonly bool allowEdit;
|
||||
|
||||
private ModSelectOverlay userModsSelectOverlay;
|
||||
private RoomSettingsOverlay settingsOverlay;
|
||||
private Drawable mainContent;
|
||||
|
||||
protected RoomSubScreen(Room room)
|
||||
/// <summary>
|
||||
/// Creates a new <see cref="RoomSubScreen"/>.
|
||||
/// </summary>
|
||||
/// <param name="room">The <see cref="Room"/>.</param>
|
||||
/// <param name="allowEdit">Whether to allow editing room settings post-creation.</param>
|
||||
protected RoomSubScreen(Room room, bool allowEdit = true)
|
||||
{
|
||||
Room = room;
|
||||
this.allowEdit = allowEdit;
|
||||
|
||||
Padding = new MarginPadding { Top = Header.HEIGHT };
|
||||
|
||||
@ -125,7 +132,7 @@ namespace osu.Game.Screens.OnlinePlay.Match
|
||||
{
|
||||
new Drawable[]
|
||||
{
|
||||
new DrawableMatchRoom(Room)
|
||||
new DrawableMatchRoom(Room, allowEdit)
|
||||
{
|
||||
MatchingFilter = true,
|
||||
OnEdit = () => settingsOverlay.Show()
|
||||
|
@ -39,7 +39,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
||||
private SelectionPollingComponent selectionPollingComponent;
|
||||
|
||||
public PlaylistsRoomSubScreen(Room room)
|
||||
: base(room)
|
||||
: base(room, false) // Editing is temporarily not allowed.
|
||||
{
|
||||
Title = room.RoomID.Value == null ? "New playlist" : room.Name.Value;
|
||||
Activity.Value = new UserActivity.InLobby(room);
|
||||
|
Loading…
Reference in New Issue
Block a user