Fix PDA ringtone crash (#8299)
This commit is contained in:
@@ -1,89 +1,39 @@
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Maths;
|
||||
using System;
|
||||
using Content.Client;
|
||||
using Content.Shared.PDA;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
|
||||
namespace Content.Client.PDA.Ringer
|
||||
{
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class RingtoneMenu : SS14Window
|
||||
public sealed partial class RingtoneMenu : DefaultWindow
|
||||
{
|
||||
private string[] _previousNoteInputs = new string[4];
|
||||
public string[] PreviousNoteInputs = new string[] { "A", "A", "A", "A"};
|
||||
public LineEdit[] RingerNoteInputs = default!;
|
||||
|
||||
public RingtoneMenu()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
|
||||
//RingerNoteOneInput
|
||||
RingerNoteOneInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit
|
||||
RingerNoteInputs = new LineEdit[] { RingerNoteOneInput, RingerNoteTwoInput, RingerNoteThreeInput, RingerNoteFourInput };
|
||||
|
||||
for (int i = 0; i < RingerNoteInputs.Length; i++)
|
||||
{
|
||||
RingerNoteOneInput.Text = RingerNoteOneInput.Text.ToUpper();
|
||||
|
||||
if(!IsNote(RingerNoteOneInput.Text))
|
||||
var input = RingerNoteInputs[i];
|
||||
int index = i;
|
||||
input.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit
|
||||
{
|
||||
RingerNoteOneInput.Text = _previousNoteInputs[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
_previousNoteInputs[0] = RingerNoteOneInput.Text;
|
||||
}
|
||||
input.Text = input.Text.ToUpper();
|
||||
|
||||
RingerNoteOneInput.CursorPosition = RingerNoteOneInput.Text.Length; //Resets caret position to the end of the typed input
|
||||
};
|
||||
if (!IsNote(input.Text))
|
||||
input.Text = PreviousNoteInputs[index];
|
||||
else
|
||||
PreviousNoteInputs[index] = input.Text;
|
||||
|
||||
//RingerNoteTwoInput
|
||||
RingerNoteTwoInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit
|
||||
{
|
||||
RingerNoteTwoInput.Text = RingerNoteTwoInput.Text.ToUpper();
|
||||
|
||||
if(!IsNote(RingerNoteTwoInput.Text))
|
||||
{
|
||||
RingerNoteTwoInput.Text = _previousNoteInputs[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
_previousNoteInputs[1] = RingerNoteTwoInput.Text;
|
||||
}
|
||||
|
||||
RingerNoteTwoInput.CursorPosition = RingerNoteTwoInput.Text.Length; //Resets caret position to the end of the typed input
|
||||
};
|
||||
|
||||
//RingerNoteThreeInput
|
||||
RingerNoteThreeInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit
|
||||
{
|
||||
RingerNoteThreeInput.Text = RingerNoteThreeInput.Text.ToUpper();
|
||||
|
||||
if(!IsNote(RingerNoteThreeInput.Text))
|
||||
{
|
||||
RingerNoteThreeInput.Text = _previousNoteInputs[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
_previousNoteInputs[2] = RingerNoteThreeInput.Text;
|
||||
}
|
||||
|
||||
RingerNoteThreeInput.CursorPosition = RingerNoteThreeInput.Text.Length; //Resets caret position to the end of the typed input
|
||||
};
|
||||
|
||||
//RingerNoteFourInput
|
||||
RingerNoteFourInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit
|
||||
{
|
||||
RingerNoteFourInput.Text = RingerNoteFourInput.Text.ToUpper();
|
||||
|
||||
if(!IsNote(RingerNoteFourInput.Text))
|
||||
{
|
||||
RingerNoteFourInput.Text = _previousNoteInputs[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
_previousNoteInputs[3] = RingerNoteFourInput.Text;
|
||||
}
|
||||
|
||||
RingerNoteFourInput.CursorPosition = RingerNoteFourInput.Text.Length; //Resets caret position to the end of the typed input
|
||||
};
|
||||
input.CursorPosition = input.Text.Length; //Resets caret position to the end of the typed input
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
protected override DragMode GetDragModeFor(Vector2 relativeMousePos)
|
||||
|
||||
Reference in New Issue
Block a user