Add admin logs window pop out button, default to docked

Default to unmaximized
This commit is contained in:
DrSmugleaf
2021-12-09 00:05:42 +01:00
parent 7929600def
commit 81c0b1e174
8 changed files with 575 additions and 519 deletions

View File

@@ -20,32 +20,22 @@ public class AdminLogsEui : BaseEui
public AdminLogsEui()
{
var monitor = _clyde.EnumerateMonitors().First();
ClydeWindow = _clyde.CreateWindow(new WindowCreateParameters
{
Maximized = true,
Title = "Admin Logs",
Monitor = monitor
});
ClydeWindow.RequestClosed += OnRequestClosed;
ClydeWindow.DisposeOnClose = true;
LogsWindow = new AdminLogsWindow();
LogsWindow.LogSearch.OnTextEntered += _ => RequestLogs();
LogsWindow.RefreshButton.OnPressed += _ => RequestLogs();
LogsWindow.NextButton.OnPressed += _ => NextLogs();
LogsControl = LogsWindow.Logs;
Root = _uiManager.CreateWindowRoot(ClydeWindow);
Root.AddChild(LogsWindow);
LogsControl.LogSearch.OnTextEntered += _ => RequestLogs();
LogsControl.RefreshButton.OnPressed += _ => RequestLogs();
LogsControl.NextButton.OnPressed += _ => NextLogs();
LogsControl.PopOutButton.OnPressed += _ => PopOut();
}
private WindowRoot Root { get; }
private WindowRoot? Root { get; set; }
private IClydeWindow ClydeWindow { get; }
private IClydeWindow? ClydeWindow { get; set; }
private AdminLogsWindow LogsWindow { get; }
private AdminLogsWindow? LogsWindow { get; set; }
private AdminLogsControl LogsControl { get; }
private bool FirstState { get; set; } = true;
@@ -57,12 +47,12 @@ public class AdminLogsEui : BaseEui
private void RequestLogs()
{
var request = new LogsRequest(
LogsWindow.SelectedRoundId,
LogsWindow.SelectedTypes.ToList(),
LogsControl.SelectedRoundId,
LogsControl.SelectedTypes.ToList(),
null,
null,
null,
LogsWindow.SelectedPlayers.ToArray(),
LogsControl.SelectedPlayers.ToArray(),
null,
null,
DateOrder.Descending);
@@ -76,6 +66,38 @@ public class AdminLogsEui : BaseEui
SendMessage(request);
}
private void PopOut()
{
if (LogsWindow == null)
{
return;
}
LogsControl.Orphan();
LogsWindow.Dispose();
LogsWindow = null;
var monitor = _clyde.EnumerateMonitors().First();
ClydeWindow = _clyde.CreateWindow(new WindowCreateParameters
{
Maximized = false,
Title = "Admin Logs",
Monitor = monitor,
Width = 1000,
Height = 400
});
ClydeWindow.RequestClosed += OnRequestClosed;
ClydeWindow.DisposeOnClose = true;
Root = _uiManager.CreateWindowRoot(ClydeWindow);
Root.AddChild(LogsControl);
LogsControl.PopOutButton.Disabled = true;
LogsControl.PopOutButton.Visible = false;
}
private bool TrySetFirstState(AdminLogsEuiState state)
{
if (!FirstState)
@@ -84,8 +106,8 @@ public class AdminLogsEui : BaseEui
}
FirstState = false;
LogsWindow.SetCurrentRound(state.RoundId);
LogsWindow.SetRoundSpinBox(state.RoundId);
LogsControl.SetCurrentRound(state.RoundId);
LogsControl.SetRoundSpinBox(state.RoundId);
return true;
}
@@ -100,8 +122,8 @@ public class AdminLogsEui : BaseEui
return;
}
LogsWindow.SetCurrentRound(s.RoundId);
LogsWindow.SetPlayers(s.Players);
LogsControl.SetCurrentRound(s.RoundId);
LogsControl.SetPlayers(s.Players);
if (first)
{
@@ -116,22 +138,33 @@ public class AdminLogsEui : BaseEui
switch (msg)
{
case NewLogs {Replace: true} newLogs:
LogsWindow.SetLogs(newLogs.Logs);
LogsControl.SetLogs(newLogs.Logs);
break;
case NewLogs {Replace: false} newLogs:
LogsWindow.AddLogs(newLogs.Logs);
LogsControl.AddLogs(newLogs.Logs);
break;
}
}
public override void Opened()
{
base.Opened();
LogsWindow?.OpenCentered();
}
public override void Closed()
{
base.Closed();
ClydeWindow.RequestClosed -= OnRequestClosed;
if (ClydeWindow != null)
{
ClydeWindow.RequestClosed -= OnRequestClosed;
}
LogsWindow.Dispose();
Root.Dispose();
ClydeWindow.Dispose();
LogsControl.Dispose();
LogsWindow?.Dispose();
Root?.Dispose();
ClydeWindow?.Dispose();
}
}