]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Ensure EUIs close themselves (#15860)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Sat, 29 Apr 2023 03:16:24 +0000 (15:16 +1200)
committerGitHub <noreply@github.com>
Sat, 29 Apr 2023 03:16:24 +0000 (13:16 +1000)
34 files changed:
Content.Client/Administration/UI/AdminMenuWindowEui.cs
Content.Client/Administration/UI/BanList/BanListEui.cs
Content.Client/Administration/UI/Logs/AdminLogsEui.cs
Content.Client/Administration/UI/ManageSolutions/EditSolutionsEui.cs
Content.Client/Administration/UI/Notes/AdminNotesEui.cs
Content.Client/Administration/UI/PermissionsEui.cs
Content.Client/Administration/UI/SetOutfit/SetOutfitEui.cs
Content.Client/Administration/UI/SpawnExplosion/SpawnExplosionEui.cs
Content.Client/Cloning/UI/AcceptCloningEui.cs
Content.Client/CrewManifest/CrewManifestEui.cs
Content.Client/NPC/NPCEui.cs
Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEui.cs
Content.Client/UserInterface/Systems/Ghost/Controls/Roles/MakeGhostRoleEui.cs
Content.Server/Administration/Logs/AdminLogsEui.cs
Content.Server/Administration/Notes/AdminNotesEui.cs
Content.Server/Administration/UI/AdminAnnounceEui.cs
Content.Server/Administration/UI/EditSolutionsEui.cs
Content.Server/Administration/UI/PermissionsEui.cs
Content.Server/Administration/UI/SpawnExplosionEui.cs
Content.Server/CrewManifest/CrewManifestEui.cs
Content.Server/EUI/BaseEui.cs
Content.Server/Fax/AdminUI/AdminFaxEui.cs
Content.Server/Ghost/Roles/UI/GhostRolesEui.cs
Content.Server/Ghost/Roles/UI/MakeGhostRoleEui.cs
Content.Shared/Administration/AdminAnnounceEuiState.cs
Content.Shared/Administration/EditSolutionsEuiState.cs
Content.Shared/Administration/Logs/AdminLogsEuiState.cs
Content.Shared/Administration/Notes/AdminNotesEuiState.cs
Content.Shared/Administration/PermissionsEuiState.cs
Content.Shared/Administration/SpawnExplosionEuiMsg.cs
Content.Shared/CrewManifest/SharedCrewManifestSystem.cs
Content.Shared/Eui/EuiMessageBase.cs
Content.Shared/Ghost/Roles/GhostRolesEuiMessages.cs
Content.Shared/Ghost/Roles/MakeGhostRoleWindowClosedMessage.cs [deleted file]

index 7b9691ff94474a356f6f4636c54b4c0403a8268d..8c1b257d9e60e47b9e5d49ecca678dfdc2948b50 100644 (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;
         }
 
index 86f2541e51f2cfd1cc7cb7adea21b6263807d8e8..07eb2e61f4b8bdb2dc393c6c414f7b0ad162515c 100644 (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; }
index b5117dc685570afe391c542b7a0a94b4ec0a45d0..0a1982ae0a94eb5a7af1b2e5fa9113256d170c53 100644 (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;
 
index 3de319300878dd1273d2c3b11b23b269e2f92c3e..4bee78fa090dd1d038802fac162014a6c98c5a6b 100644 (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();
         }
 
index 97edf1d63aefc87c8aa499eacb22eedebb7d92a5..0e95209f41ad6fab4a002db69cc414e538462726 100644 (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; }
index 202df1b7b3de196eb4e4469d3b630ce7ed7bb580..97842261f0979fb2645856c945ba5ecb639e3249 100644 (file)
@@ -45,6 +45,7 @@ namespace Content.Client.Administration.UI
         {
             base.Closed();
 
+            SendMessage(new CloseEuiMessage());
             CloseEverything();
         }
 
index 2731aad170e147538b0c5903e0f05b6e651772fa..c2771165267166f73f16d05e7c4497e52cf3ef12 100644 (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()
index 14eeb063868ac7341a94578ef4ec6a030ec197bc..5413b953f8b12d94004a2748d0ea6b4049719743 100644 (file)
@@ -38,7 +38,7 @@ public sealed class SpawnExplosionEui : BaseEui
 
     public void SendClosedMessage()
     {
-        SendMessage(new SpawnExplosionEuiMsg.Close());
+        SendMessage(new CloseEuiMessage());
     }
 
     public void ClearOverlay()
index 30f9a513dfa2cdee4b5d8f36310d21dbadf8b83b..99f4568e96be8283982dd4aacdfd933e407ca4d2 100644 (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));
index 546e8ccc99209192e0bc3e1a2cfd54b120558854..500f91019d6df446140f02ec5a158801b71936ce 100644 (file)
@@ -16,7 +16,7 @@ public sealed class CrewManifestEui : BaseEui
 
         _window.OnClose += () =>
         {
-            SendMessage(new CrewManifestEuiClosed());
+            SendMessage(new CloseEuiMessage());
         };
     }
 
index d5f91fb9141ffb347c3ab9d24d941c367583343f..35b13296818e40391fbd1a014e2c19a50c1d36f2 100644 (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()
index a41a2b42fdf78ccb0398778d859aec5443be81e7..f52bf9fc4ba84557dd8d709822d89ee4a4299e18 100644 (file)
@@ -40,7 +40,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
 
             _window.OnClose += () =>
             {
-                SendMessage(new GhostRoleWindowCloseMessage());
+                SendMessage(new CloseEuiMessage());
             };
         }
 
index 4a1357c0e57ee444474ff8b5460a117143ce3f4b..a6d27a7793428b46b7b0d189bf70cd5215ff780c 100644 (file)
@@ -70,7 +70,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
         private void OnClose()
         {
             base.Closed();
-            SendMessage(new MakeGhostRoleWindowClosedMessage());
+            SendMessage(new CloseEuiMessage());
         }
     }
 }
index 7700f02a3b3e6bb544316f502468c97b4e83fe8a..48c76205e64270cfd77cddc744d55b7132608aec 100644 (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}");
index 5aadd1520ebedfdd1dcb69148741baf378e2bf21..d71575903b4dc16814ed045cd0a7b67a8ab270ff 100644 (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))
index f316642a77102d4b0a76db586d30bbf497b10052..b6a6ba99840034e95da634a5c6ba930acbb29bc2 100644 (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))
                     {
index 419425c3568cf0cebd39f4a58e5e3270a4ce702c..cb5ce8fbfa736118fa709d69f98d0d2dc7f14551 100644 (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;
-            }
-        }
     }
 }
index 8445636b44df9827c8dd2a7a75054c78b6ca9b4e..82ec10577d005ac7f0b421eb95b39e50f0e3d087 100644 (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);
index e2c1626b23591fe54369d2a208d174690e85a7fe..98dc307278416d469202ea95e74f79287d5b3331 100644 (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;
index 0f9394f53a1ab6eb4d8ef2850e08c5a7b66121af..fbda27657daa08a000077a1a253f8e9e01ab55c8 100644 (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();
index 9f60766eb04a15f7529b225544c082a58ed571f0..b569f9e87cf964afbea893cc9441634e9c76fe1f 100644 (file)
@@ -49,6 +49,8 @@ namespace Content.Server.EUI
         /// </summary>
         public virtual void HandleMessage(EuiMessageBase msg)
         {
+            if (msg is CloseEuiMessage)
+                Close();
         }
 
         /// <summary>
index 87dd44a28d3eb18714a4d48b3d96db45005e5dd7..fd8942d418347e4d6e8bfac2a88fb9169a3cec32 100644 (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 ||
index ea63235291a2a75bf09ce4e37fbe6cabfcf8bb5c..627231db9e3a8901796f093c4b82b20605161811 100644 (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;
             }
         }
 
index df6608cdb221dc53300e1b434d89c9803c8003dd..c2f46f7c7955b514b9460381e4b75a9978a159c4 100644 (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();
index 32bfd611fb62c67043ba13d3c9f635448137e475..189a603207b1ef4f1c06f01cc6f5f43facd09cda 100644 (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
         {
index 3e72298630201f4c49da33c763ee6ede86899be1..218202ff3de3053e0875cad99385b1d673ec00fe 100644 (file)
@@ -16,10 +16,4 @@ namespace Content.Shared.Administration
             Solutions = solutions;
         }
     }
-
-    public static class EditSolutionsEuiMsg
-    {
-        [Serializable, NetSerializable]
-        public sealed class Close : EuiMessageBase { }
-    }
 }
index 7fb62a9c987af4a1c555c9bad32d5a2c60840b4c..6e4d439c3226725e37cdfb2c3fb983a817690785 100644 (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
     {
index 90a84b946738b894780f3be4e8e792ac5e86d82d..ac9a8152dabde59c7b56820bc9d1e0d8b8b9132c 100644 (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
     {
index 428f15b536f0905d5b7e1d25658e5425902d8824..4aa622f45e369dacf38362b847ebf72011e92e4f 100644 (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
         {
index 38fd82099686e036148db4d237d78eaece74f64a..910399a95c2649e67971c1c016cb64240996e7c7 100644 (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>
index 72872708c58caefa3755858e376dd1d8a8b98234..0f174175fcd82526af94b117a66078c0c1ffad86 100644 (file)
@@ -32,10 +32,6 @@ public sealed class CrewManifestEuiState : EuiStateBase
     }
 }
 
-[Serializable, NetSerializable]
-public sealed class CrewManifestEuiClosed : EuiMessageBase
-{}
-
 [Serializable, NetSerializable]
 public sealed class CrewManifestEntries
 {
index 8943337d98df0e314c5481d5d5bc35feda3819eb..6ed2b7c49bba0994cc04464ce8834bebd00baa8b 100644 (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
+    {
+    }
 }
index d52762052912ef5b3d1cda52ce76ccfa2fc953c6..31672c7a9e983d8ce76c12872da6aa1748f43bc7 100644 (file)
@@ -44,9 +44,4 @@ namespace Content.Shared.Ghost.Roles
             Identifier = identifier;
         }
     }
-
-    [NetSerializable, Serializable]
-    public sealed class GhostRoleWindowCloseMessage : EuiMessageBase
-    {
-    }
 }
diff --git a/Content.Shared/Ghost/Roles/MakeGhostRoleWindowClosedMessage.cs b/Content.Shared/Ghost/Roles/MakeGhostRoleWindowClosedMessage.cs
deleted file mode 100644 (file)
index ff9830d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-using Content.Shared.Eui;
-using Robust.Shared.Serialization;
-
-namespace Content.Shared.Ghost.Roles
-{
-    [Serializable, NetSerializable]
-    public sealed class MakeGhostRoleWindowClosedMessage : EuiMessageBase
-    {
-    }
-}