]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Improvements to hand labeler UI (#31833)
authoreoineoineoin <github@eoinrul.es>
Wed, 4 Sep 2024 14:20:00 +0000 (15:20 +0100)
committerGitHub <noreply@github.com>
Wed, 4 Sep 2024 14:20:00 +0000 (16:20 +0200)
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>
Content.Client/Labels/UI/HandLabelerBoundUserInterface.cs
Content.Client/Labels/UI/HandLabelerWindow.xaml.cs

index 6b6561234122deee30e7946499753a6bbbb5cb3d..b9b58f23220ace16e2327443aba229bdb435dab1 100644 (file)
@@ -26,6 +26,11 @@ namespace Content.Client.Labels.UI
 
             _window = this.CreateWindow<HandLabelerWindow>();
 
+            if (_entManager.TryGetComponent(Owner, out HandLabelerComponent? labeler))
+            {
+                _window.SetMaxLabelLength(labeler!.MaxLabelChars);
+            }
+
             _window.OnLabelChanged += OnLabelChanged;
             Reload();
         }
index 6482cdc1cc206f5e9bdee3e2f8ea300492d56350..7a0627b3e236e90125b71ed526f25c4d11f3678f 100644 (file)
@@ -21,7 +21,7 @@ namespace Content.Client.Labels.UI
         {
             RobustXamlLoader.Load(this);
 
-            LabelLineEdit.OnTextEntered += e =>
+            LabelLineEdit.OnTextChanged += e =>
             {
                 _label = e.Text;
                 OnLabelChanged?.Invoke(_label);
@@ -33,6 +33,10 @@ namespace Content.Client.Labels.UI
                 _focused = false;
                 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)
@@ -44,5 +48,10 @@ namespace Content.Client.Labels.UI
             if (!_focused)
                 LabelLineEdit.Text = label;
         }
+
+        public void SetMaxLabelLength(int maxLength)
+        {
+            LabelLineEdit.IsValid = s => s.Length <= maxLength;
+        }
     }
 }