Copy button for ban/disconnect reason (#30760)
* Copy button for connection messages on failed connections and ban hit attempts * loc * better sepperation layout * consistent styling. * Fix loc var name * Reconnect button back. * Move clipboard dependency out to the params. * open buttons so they look a bit better.
This commit is contained in:
parent
55d867a3e0
commit
bf7a33be94
|
|
@ -19,6 +19,7 @@ namespace Content.Client.Launcher
|
|||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
[Dependency] private readonly IClipboardManager _clipboard = default!;
|
||||
|
||||
private LauncherConnectingGui? _control;
|
||||
|
||||
|
|
@ -58,7 +59,7 @@ namespace Content.Client.Launcher
|
|||
|
||||
protected override void Startup()
|
||||
{
|
||||
_control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg);
|
||||
_control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg, _clipboard);
|
||||
|
||||
_userInterfaceManager.StateRoot.AddChild(_control);
|
||||
|
||||
|
|
|
|||
|
|
@ -18,21 +18,38 @@
|
|||
<Control VerticalExpand="True" Margin="0 0 0 8">
|
||||
<BoxContainer Orientation="Vertical" Name="ConnectingStatus">
|
||||
<Label Text="{Loc 'connecting-in-progress'}" Align="Center" />
|
||||
<!-- Who the fuck named these cont- oh wait I did -->
|
||||
<Label Name="ConnectStatus" StyleClasses="LabelSubText" Align="Center" />
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Vertical" Name="ConnectFail" Visible="False">
|
||||
<BoxContainer Orientation="Vertical" Name="ConnectFail" Visible="False" SeparationOverride="10">
|
||||
<RichTextLabel Name="ConnectFailReason" VerticalAlignment="Stretch"/>
|
||||
<Button Name="RetryButton" Text="{Loc 'connecting-retry'}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalExpand="True" VerticalAlignment="Bottom" />
|
||||
<BoxContainer Orientation="Horizontal" Align="Center">
|
||||
<Button Name="RetryButton"
|
||||
Text="{Loc 'connecting-retry'}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
StyleClasses="OpenRight"/>
|
||||
<Button Name="CopyButton"
|
||||
Text="{Loc 'connecting-copy'}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
StyleClasses="OpenLeft"/>
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Vertical" Name="Disconnected">
|
||||
<BoxContainer Orientation="Vertical" Name="Disconnected" Visible="False" SeparationOverride="10">
|
||||
<Label Text="{Loc 'connecting-disconnected'}" Align="Center" />
|
||||
<Label Name="DisconnectReason" Align="Center" />
|
||||
<Button Name="ReconnectButton" Text="{Loc 'connecting-reconnect'}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalExpand="True" VerticalAlignment="Bottom" />
|
||||
<BoxContainer Orientation="Horizontal" Align="Center" VerticalAlignment="Bottom">
|
||||
<Button Name="ReconnectButton"
|
||||
Text="{Loc 'connecting-reconnect'}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
StyleClasses="OpenRight"/>
|
||||
<Button Name="CopyButtonDisconnected"
|
||||
Text="{Loc 'connecting-copy'}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
StyleClasses="OpenLeft"/>
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
</Control>
|
||||
<Label Name="ConnectingAddress" StyleClasses="LabelSubText" HorizontalAlignment="Center" />
|
||||
|
|
|
|||
|
|
@ -28,14 +28,16 @@ namespace Content.Client.Launcher
|
|||
private readonly IRobustRandom _random;
|
||||
private readonly IPrototypeManager _prototype;
|
||||
private readonly IConfigurationManager _cfg;
|
||||
private readonly IClipboardManager _clipboard;
|
||||
|
||||
public LauncherConnectingGui(LauncherConnecting state, IRobustRandom random,
|
||||
IPrototypeManager prototype, IConfigurationManager config)
|
||||
IPrototypeManager prototype, IConfigurationManager config, IClipboardManager clipboard)
|
||||
{
|
||||
_state = state;
|
||||
_random = random;
|
||||
_prototype = prototype;
|
||||
_cfg = config;
|
||||
_clipboard = clipboard;
|
||||
|
||||
RobustXamlLoader.Load(this);
|
||||
|
||||
|
|
@ -44,8 +46,11 @@ namespace Content.Client.Launcher
|
|||
Stylesheet = IoCManager.Resolve<IStylesheetManager>().SheetSpace;
|
||||
|
||||
ChangeLoginTip();
|
||||
ReconnectButton.OnPressed += ReconnectButtonPressed;
|
||||
RetryButton.OnPressed += ReconnectButtonPressed;
|
||||
ReconnectButton.OnPressed += ReconnectButtonPressed;
|
||||
|
||||
CopyButton.OnPressed += CopyButtonPressed;
|
||||
CopyButtonDisconnected.OnPressed += CopyButtonDisconnectedPressed;
|
||||
ExitButton.OnPressed += _ => _state.Exit();
|
||||
|
||||
var addr = state.Address;
|
||||
|
|
@ -78,6 +83,24 @@ namespace Content.Client.Launcher
|
|||
_state.RetryConnect();
|
||||
}
|
||||
|
||||
private void CopyButtonPressed(BaseButton.ButtonEventArgs args)
|
||||
{
|
||||
CopyText(ConnectFailReason.Text);
|
||||
}
|
||||
|
||||
private void CopyButtonDisconnectedPressed(BaseButton.ButtonEventArgs args)
|
||||
{
|
||||
CopyText(DisconnectReason.Text);
|
||||
}
|
||||
|
||||
private void CopyText(string? text)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
{
|
||||
_clipboard.SetText(text);
|
||||
}
|
||||
}
|
||||
|
||||
private void ConnectFailReasonChanged(string? reason)
|
||||
{
|
||||
ConnectFailReason.SetMessage(reason == null
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ connecting-title = Space Station 14
|
|||
connecting-exit = Exit
|
||||
connecting-retry = Retry
|
||||
connecting-reconnect = Reconnect
|
||||
connecting-copy = Copy Message
|
||||
connecting-redial = Relaunch
|
||||
connecting-redial-wait = Please wait: { TOSTRING($time, "G3") }
|
||||
connecting-in-progress = Connecting to server...
|
||||
|
|
|
|||
Loading…
Reference in New Issue