Improvements to hand labeler UI (#31833)
Give line edit focus when window is opened No longer require pressing enter to set the text Give feedback when user hits the maximum label length Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
This commit is contained in:
@@ -26,6 +26,11 @@ namespace Content.Client.Labels.UI
|
|||||||
|
|
||||||
_window = this.CreateWindow<HandLabelerWindow>();
|
_window = this.CreateWindow<HandLabelerWindow>();
|
||||||
|
|
||||||
|
if (_entManager.TryGetComponent(Owner, out HandLabelerComponent? labeler))
|
||||||
|
{
|
||||||
|
_window.SetMaxLabelLength(labeler!.MaxLabelChars);
|
||||||
|
}
|
||||||
|
|
||||||
_window.OnLabelChanged += OnLabelChanged;
|
_window.OnLabelChanged += OnLabelChanged;
|
||||||
Reload();
|
Reload();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Content.Client.Labels.UI
|
|||||||
{
|
{
|
||||||
RobustXamlLoader.Load(this);
|
RobustXamlLoader.Load(this);
|
||||||
|
|
||||||
LabelLineEdit.OnTextEntered += e =>
|
LabelLineEdit.OnTextChanged += e =>
|
||||||
{
|
{
|
||||||
_label = e.Text;
|
_label = e.Text;
|
||||||
OnLabelChanged?.Invoke(_label);
|
OnLabelChanged?.Invoke(_label);
|
||||||
@@ -33,6 +33,10 @@ namespace Content.Client.Labels.UI
|
|||||||
_focused = false;
|
_focused = false;
|
||||||
LabelLineEdit.Text = _label;
|
LabelLineEdit.Text = _label;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Give the editor keybard focus, since that's the only
|
||||||
|
// thing the user will want to be doing with this UI
|
||||||
|
LabelLineEdit.GrabKeyboardFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetCurrentLabel(string label)
|
public void SetCurrentLabel(string label)
|
||||||
@@ -44,5 +48,10 @@ namespace Content.Client.Labels.UI
|
|||||||
if (!_focused)
|
if (!_focused)
|
||||||
LabelLineEdit.Text = label;
|
LabelLineEdit.Text = label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetMaxLabelLength(int maxLength)
|
||||||
|
{
|
||||||
|
LabelLineEdit.IsValid = s => s.Length <= maxLength;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user