Ensure EUIs close themselves (#15860)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -45,6 +45,7 @@ namespace Content.Client.Administration.UI
|
||||
{
|
||||
base.Closed();
|
||||
|
||||
SendMessage(new CloseEuiMessage());
|
||||
CloseEverything();
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -38,7 +38,7 @@ public sealed class SpawnExplosionEui : BaseEui
|
||||
|
||||
public void SendClosedMessage()
|
||||
{
|
||||
SendMessage(new SpawnExplosionEuiMsg.Close());
|
||||
SendMessage(new CloseEuiMessage());
|
||||
}
|
||||
|
||||
public void ClearOverlay()
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -16,7 +16,7 @@ public sealed class CrewManifestEui : BaseEui
|
||||
|
||||
_window.OnClose += () =>
|
||||
{
|
||||
SendMessage(new CrewManifestEuiClosed());
|
||||
SendMessage(new CloseEuiMessage());
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
|
||||
|
||||
_window.OnClose += () =>
|
||||
{
|
||||
SendMessage(new GhostRoleWindowCloseMessage());
|
||||
SendMessage(new CloseEuiMessage());
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
|
||||
private void OnClose()
|
||||
{
|
||||
base.Closed();
|
||||
SendMessage(new MakeGhostRoleWindowClosedMessage());
|
||||
SendMessage(new CloseEuiMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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}");
|
||||
|
||||
@@ -58,11 +58,6 @@ public sealed class AdminNotesEui : BaseEui
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case Close _:
|
||||
{
|
||||
Close();
|
||||
break;
|
||||
}
|
||||
case CreateNoteRequest {Message: var message}:
|
||||
{
|
||||
if (!_notesMan.CanCreate(Player))
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -49,6 +49,8 @@ namespace Content.Server.EUI
|
||||
/// </summary>
|
||||
public virtual void HandleMessage(EuiMessageBase msg)
|
||||
{
|
||||
if (msg is CloseEuiMessage)
|
||||
Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -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 ||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -16,10 +16,4 @@ namespace Content.Shared.Administration
|
||||
Solutions = solutions;
|
||||
}
|
||||
}
|
||||
|
||||
public static class EditSolutionsEuiMsg
|
||||
{
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class Close : EuiMessageBase { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -32,10 +32,6 @@ public sealed class CrewManifestEuiState : EuiStateBase
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class CrewManifestEuiClosed : EuiMessageBase
|
||||
{}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class CrewManifestEntries
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,4 @@ namespace Content.Shared.Ghost.Roles
|
||||
Identifier = identifier;
|
||||
}
|
||||
}
|
||||
|
||||
[NetSerializable, Serializable]
|
||||
public sealed class GhostRoleWindowCloseMessage : EuiMessageBase
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
using Content.Shared.Eui;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Ghost.Roles
|
||||
{
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class MakeGhostRoleWindowClosedMessage : EuiMessageBase
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user