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:
committed by
GitHub
parent
b5066dc4c6
commit
d385c1bb23
@@ -1,6 +1,5 @@
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.Input;
|
||||
using Robust.Shared.Utility;
|
||||
using static Content.Shared.Paper.SharedPaperComponent;
|
||||
|
||||
@@ -22,15 +21,7 @@ public sealed class PaperBoundUserInterface : BoundUserInterface
|
||||
|
||||
_window = new PaperWindow();
|
||||
_window.OnClose += Close;
|
||||
_window.Input.OnKeyBindDown += args => // Solution while TextEdit don't have events
|
||||
{
|
||||
if (args.Function == EngineKeyFunctions.MultilineTextSubmit)
|
||||
{
|
||||
var text = Rope.Collapse(_window.Input.TextRope);
|
||||
Input_OnTextEntered(text);
|
||||
args.Handle();
|
||||
}
|
||||
};
|
||||
_window.OnSaved += Input_OnTextEntered;
|
||||
|
||||
if (EntMan.TryGetComponent<PaperVisualsComponent>(Owner, out var visuals))
|
||||
{
|
||||
|
||||
@@ -25,5 +25,9 @@
|
||||
</PanelContainer>
|
||||
</ScrollContainer>
|
||||
</PanelContainer>
|
||||
<!-- Bottom buttons for editing -->
|
||||
<BoxContainer Name="EditButtons" Orientation="Horizontal" HorizontalAlignment="Right" Margin="6">
|
||||
<Button Name="SaveButton" />
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
</paper:PaperWindow>
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user