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()