Paper save button, back to ctrl+enter save. (#25870)

* Revert "Change keybindings for paper (#25853)"

This reverts commit 4b56996fcd.

* Add a save button to the paper editing UI instead.
This commit is contained in:
Pieter-Jan Briers
2024-03-06 02:35:26 +01:00
committed by GitHub
parent b5066dc4c6
commit d385c1bb23
5 changed files with 39 additions and 12 deletions

View File

@@ -2,18 +2,22 @@ using System.Numerics;
using Content.Shared.Paper;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.Input;
using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Utility;
using Robust.Client.UserInterface.RichText;
using Robust.Shared.Input;
namespace Content.Client.Paper.UI
{
[GenerateTypedNameReferences]
public sealed partial class PaperWindow : BaseWindow
{
[Dependency] private readonly IInputManager _inputManager = default!;
private static Color DefaultTextColor = new(25, 25, 25);
// <summary>
@@ -41,8 +45,11 @@ namespace Content.Client.Paper.UI
typeof(ItalicTag)
};
public event Action<string>? OnSaved;
public PaperWindow()
{
IoCManager.InjectDependencies(this);
RobustXamlLoader.Load(this);
// We can't configure the RichTextLabel contents from xaml, so do it here:
@@ -50,6 +57,23 @@ namespace Content.Client.Paper.UI
// Hook up the close button:
CloseButton.OnPressed += _ => Close();
Input.OnKeyBindDown += args => // Solution while TextEdit don't have events
{
if (args.Function == EngineKeyFunctions.MultilineTextSubmit)
{
RunOnSaved();
args.Handle();
}
};
SaveButton.OnPressed += _ =>
{
RunOnSaved();
};
SaveButton.Text = Loc.GetString("paper-ui-save-button",
("keybind", _inputManager.GetKeyFunctionButtonString(EngineKeyFunctions.MultilineTextSubmit)));
}
/// <summary>
@@ -196,6 +220,7 @@ namespace Content.Client.Paper.UI
bool isEditing = state.Mode == SharedPaperComponent.PaperAction.Write;
bool wasEditing = InputContainer.Visible;
InputContainer.Visible = isEditing;
EditButtons.Visible = isEditing;
var msg = new FormattedMessage();
msg.AddMarkupPermissive(state.Text);
@@ -266,5 +291,10 @@ namespace Content.Client.Paper.UI
}
return mode & _allowedResizeModes;
}
private void RunOnSaved()
{
OnSaved?.Invoke(Rope.Collapse(Input.TextRope));
}
}
}