Ensure EUIs close themselves (#15860)

This commit is contained in:
Leon Friedrich
2023-04-29 15:16:24 +12:00
committed by GitHub
parent 58300598e2
commit cedec8d415
34 changed files with 79 additions and 128 deletions

View File

@@ -1,5 +1,6 @@
using Content.Client.Eui;
using Content.Shared.Administration;
using Content.Shared.Eui;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Utility;
@@ -12,7 +13,7 @@ namespace Content.Client.Administration.UI
public AdminAnnounceEui()
{
_window = new AdminAnnounceWindow();
_window.OnClose += () => SendMessage(new AdminAnnounceEuiMsg.Close());
_window.OnClose += () => SendMessage(new CloseEuiMessage());
_window.AnnounceButton.OnPressed += AnnounceButtonOnOnPressed;
}

View File

@@ -1,6 +1,7 @@
using Content.Client.Eui;
using Content.Shared.Administration.BanList;
using Content.Shared.Eui;
using Content.Shared.Ghost.Roles;
namespace Content.Client.Administration.UI.BanList;
@@ -9,9 +10,21 @@ public sealed class BanListEui : BaseEui
public BanListEui()
{
BanWindow = new BanListWindow();
BanWindow.OnClose += OnClosed;
BanControl = BanWindow.BanList;
}
private void OnClosed()
{
SendMessage(new CloseEuiMessage());
}
public override void Closed()
{
base.Closed();
BanWindow.Close();
}
private BanListWindow BanWindow { get; }
private BanListControl BanControl { get; }

View File

@@ -19,6 +19,7 @@ public sealed class AdminLogsEui : BaseEui
public AdminLogsEui()
{
LogsWindow = new AdminLogsWindow();
LogsWindow.OnClose += OnCloseWindow;
LogsControl = LogsWindow.Logs;
LogsControl.LogSearch.OnTextEntered += _ => RequestLogs();
@@ -39,7 +40,13 @@ public sealed class AdminLogsEui : BaseEui
private void OnRequestClosed(WindowRequestClosedEventArgs args)
{
SendMessage(new Close());
SendMessage(new CloseEuiMessage());
}
private void OnCloseWindow()
{
if (ClydeWindow == null)
SendMessage(new CloseEuiMessage());
}
private void RequestLogs()
@@ -74,10 +81,6 @@ public sealed class AdminLogsEui : BaseEui
return;
}
LogsControl.Orphan();
LogsWindow.Dispose();
LogsWindow = null;
var monitor = _clyde.EnumerateMonitors().First();
ClydeWindow = _clyde.CreateWindow(new WindowCreateParameters
@@ -89,6 +92,10 @@ public sealed class AdminLogsEui : BaseEui
Height = 400
});
LogsControl.Orphan();
LogsWindow.Dispose();
LogsWindow = null;
ClydeWindow.RequestClosed += OnRequestClosed;
ClydeWindow.DisposeOnClose = true;

View File

@@ -16,7 +16,7 @@ namespace Content.Client.Administration.UI.ManageSolutions
public EditSolutionsEui()
{
_window = new EditSolutionsWindow();
_window.OnClose += () => SendMessage(new EditSolutionsEuiMsg.Close());
_window.OnClose += () => SendMessage(new CloseEuiMessage());
}
public override void Opened()
@@ -28,7 +28,6 @@ namespace Content.Client.Administration.UI.ManageSolutions
public override void Closed()
{
base.Closed();
_window.OnClose -= () => SendMessage(new EditSolutionsEuiMsg.Close());
_window.Close();
}

View File

@@ -17,6 +17,18 @@ public sealed class AdminNotesEui : BaseEui
NoteControl.OnNoteChanged += (id, text) => SendMessage(new EditNoteRequest(id, text));
NoteControl.OnNewNoteEntered += text => SendMessage(new CreateNoteRequest(text));
NoteControl.OnNoteDeleted += id => SendMessage(new DeleteNoteRequest(id));
NoteWindow.OnClose += OnClosed;
}
private void OnClosed()
{
SendMessage(new CloseEuiMessage());
}
public override void Closed()
{
base.Closed();
NoteWindow.Close();
}
private AdminNotesWindow NoteWindow { get; }

View File

@@ -45,6 +45,7 @@ namespace Content.Client.Administration.UI
{
base.Closed();
SendMessage(new CloseEuiMessage());
CloseEverything();
}

View File

@@ -12,6 +12,12 @@ namespace Content.Client.Administration.UI.SetOutfit
public SetOutfitEui()
{
_window = new SetOutfitMenu();
_window.OnClose += OnClosed;
}
private void OnClosed()
{
SendMessage(new CloseEuiMessage());
}
public override void Opened()

View File

@@ -38,7 +38,7 @@ public sealed class SpawnExplosionEui : BaseEui
public void SendClosedMessage()
{
SendMessage(new SpawnExplosionEuiMsg.Close());
SendMessage(new CloseEuiMessage());
}
public void ClearOverlay()

View File

@@ -20,6 +20,8 @@ namespace Content.Client.Cloning.UI
_window.Close();
};
_window.OnClose += () => SendMessage(new AcceptCloningChoiceMessage(AcceptCloningUiButton.Deny));
_window.AcceptButton.OnPressed += _ =>
{
SendMessage(new AcceptCloningChoiceMessage(AcceptCloningUiButton.Accept));

View File

@@ -16,7 +16,7 @@ public sealed class CrewManifestEui : BaseEui
_window.OnClose += () =>
{
SendMessage(new CrewManifestEuiClosed());
SendMessage(new CloseEuiMessage());
};
}

View File

@@ -1,4 +1,5 @@
using Content.Client.Eui;
using Content.Shared.Eui;
namespace Content.Client.NPC;
@@ -11,6 +12,12 @@ public sealed class NPCEui : BaseEui
base.Opened();
_window = new NPCWindow();
_window.OpenCentered();
_window.OnClose += OnClosed;
}
private void OnClosed()
{
SendMessage(new CloseEuiMessage());
}
public override void Closed()

View File

@@ -40,7 +40,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
_window.OnClose += () =>
{
SendMessage(new GhostRoleWindowCloseMessage());
SendMessage(new CloseEuiMessage());
};
}

View File

@@ -70,7 +70,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
private void OnClose()
{
base.Closed();
SendMessage(new MakeGhostRoleWindowClosedMessage());
SendMessage(new CloseEuiMessage());
}
}
}

View File

@@ -92,6 +92,8 @@ public sealed class AdminLogsEui : BaseEui
public override async void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
if (!_adminManager.HasAdminFlag(Player, AdminFlags.Logs))
{
return;
@@ -99,11 +101,6 @@ public sealed class AdminLogsEui : BaseEui
switch (msg)
{
case Close _:
{
Close();
break;
}
case LogsRequest request:
{
_sawmill.Info($"Admin log request from admin with id {Player.UserId.UserId} and name {Player.Name}");

View File

@@ -58,11 +58,6 @@ public sealed class AdminNotesEui : BaseEui
switch (msg)
{
case Close _:
{
Close();
break;
}
case CreateNoteRequest {Message: var message}:
{
if (!_notesMan.CanCreate(Player))

View File

@@ -32,11 +32,10 @@ namespace Content.Server.Administration.UI
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
switch (msg)
{
case AdminAnnounceEuiMsg.Close:
Close();
break;
case AdminAnnounceEuiMsg.DoAnnounce doAnnounce:
if (!_adminManager.HasAdminFlag(Player, AdminFlags.Admin))
{

View File

@@ -38,15 +38,5 @@ namespace Content.Server.Administration.UI
var solutions = _entityManager.GetComponentOrNull<SolutionContainerManagerComponent>(Target)?.Solutions;
return new EditSolutionsEuiState(Target, solutions);
}
public override void HandleMessage(EuiMessageBase msg)
{
switch (msg)
{
case EditSolutionsEuiMsg.Close:
Close();
break;
}
}
}
}

View File

@@ -86,14 +86,10 @@ namespace Content.Server.Administration.UI
public override async void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
switch (msg)
{
case Close _:
{
Close();
break;
}
case AddAdmin ca:
{
await HandleCreateAdmin(ca);

View File

@@ -14,11 +14,7 @@ public sealed class SpawnExplosionEui : BaseEui
{
public override void HandleMessage(EuiMessageBase msg)
{
if (msg is SpawnExplosionEuiMsg.Close)
{
Close();
return;
}
base.HandleMessage(msg);
if (msg is not SpawnExplosionEuiMsg.PreviewRequest request)
return;

View File

@@ -33,18 +33,6 @@ public sealed class CrewManifestEui : BaseEui
return new(name, entries);
}
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
switch (msg)
{
case CrewManifestEuiClosed:
Closed();
break;
}
}
public override void Closed()
{
base.Closed();

View File

@@ -49,6 +49,8 @@ namespace Content.Server.EUI
/// </summary>
public virtual void HandleMessage(EuiMessageBase msg)
{
if (msg is CloseEuiMessage)
Close();
}
/// <summary>

View File

@@ -38,13 +38,10 @@ public sealed class AdminFaxEui : BaseEui
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
switch (msg)
{
case AdminFaxEuiMsg.Close:
{
Close();
break;
}
case AdminFaxEuiMsg.Follow followData:
{
if (Player.AttachedEntity == null ||

View File

@@ -23,9 +23,6 @@ namespace Content.Server.Ghost.Roles.UI
case GhostRoleFollowRequestMessage req:
EntitySystem.Get<GhostRoleSystem>().Follow(Player, req.Identifier);
break;
case GhostRoleWindowCloseMessage _:
Closed();
break;
}
}

View File

@@ -18,18 +18,6 @@ namespace Content.Server.Ghost.Roles.UI
return new MakeGhostRoleEuiState(EntityUid);
}
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
switch (msg)
{
case MakeGhostRoleWindowClosedMessage _:
Closed();
break;
}
}
public override void Closed()
{
base.Closed();

View File

@@ -16,12 +16,6 @@ namespace Content.Shared.Administration
public static class AdminAnnounceEuiMsg
{
[Serializable, NetSerializable]
public sealed class Close : EuiMessageBase
{
}
[Serializable, NetSerializable]
public sealed class DoAnnounce : EuiMessageBase
{

View File

@@ -16,10 +16,4 @@ namespace Content.Shared.Administration
Solutions = solutions;
}
}
public static class EditSolutionsEuiMsg
{
[Serializable, NetSerializable]
public sealed class Close : EuiMessageBase { }
}
}

View File

@@ -22,11 +22,6 @@ public sealed class AdminLogsEuiState : EuiStateBase
public static class AdminLogsEuiMsg
{
[Serializable, NetSerializable]
public sealed class Close : EuiMessageBase
{
}
[Serializable, NetSerializable]
public sealed class SetLogFilter : EuiMessageBase
{

View File

@@ -24,11 +24,6 @@ public sealed class AdminNotesEuiState : EuiStateBase
public static class AdminNoteEuiMsg
{
[Serializable, NetSerializable]
public sealed class Close : EuiMessageBase
{
}
[Serializable, NetSerializable]
public sealed class CreateNoteRequest : EuiMessageBase
{

View File

@@ -33,11 +33,6 @@ namespace Content.Shared.Administration
public static class PermissionsEuiMsg
{
[Serializable, NetSerializable]
public sealed class Close : EuiMessageBase
{
}
[Serializable, NetSerializable]
public sealed class AddAdmin : EuiMessageBase
{

View File

@@ -7,9 +7,6 @@ namespace Content.Shared.Administration;
public static class SpawnExplosionEuiMsg
{
[Serializable, NetSerializable]
public sealed class Close : EuiMessageBase { }
/// <summary>
/// This message is sent to the server to request explosion preview data.
/// </summary>

View File

@@ -32,10 +32,6 @@ public sealed class CrewManifestEuiState : EuiStateBase
}
}
[Serializable, NetSerializable]
public sealed class CrewManifestEuiClosed : EuiMessageBase
{}
[Serializable, NetSerializable]
public sealed class CrewManifestEntries
{

View File

@@ -1,8 +1,15 @@
namespace Content.Shared.Eui
using Robust.Shared.Serialization;
namespace Content.Shared.Eui
{
[Serializable]
public abstract class EuiMessageBase
{
}
[Serializable, NetSerializable]
public sealed class CloseEuiMessage : EuiMessageBase
{
}
}

View File

@@ -44,9 +44,4 @@ namespace Content.Shared.Ghost.Roles
Identifier = identifier;
}
}
[NetSerializable, Serializable]
public sealed class GhostRoleWindowCloseMessage : EuiMessageBase
{
}
}

View File

@@ -1,10 +0,0 @@
using Content.Shared.Eui;
using Robust.Shared.Serialization;
namespace Content.Shared.Ghost.Roles
{
[Serializable, NetSerializable]
public sealed class MakeGhostRoleWindowClosedMessage : EuiMessageBase
{
}
}