* 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.
[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;
protected override void Startup()
{
- _control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg);
+ _control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg, _clipboard);
_userInterfaceManager.StateRoot.AddChild(_control);
<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" />
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);
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;
_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
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...