From c25abfe3ffe588fe26608347f293bf15ee4707b4 Mon Sep 17 00:00:00 2001 From: Sinai Date: Sat, 15 May 2021 06:19:44 +1000 Subject: [PATCH] Fix normal args setting generic arg input field placeholder text --- src/UI/CacheObject/Views/EvaluateWidget.cs | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/UI/CacheObject/Views/EvaluateWidget.cs b/src/UI/CacheObject/Views/EvaluateWidget.cs index 11a6eed..46d8cf9 100644 --- a/src/UI/CacheObject/Views/EvaluateWidget.cs +++ b/src/UI/CacheObject/Views/EvaluateWidget.cs @@ -33,7 +33,9 @@ namespace UnityExplorer.UI.CacheObject.Views private readonly List genericArgLabels = new List(); private readonly List genericAutocompleters = new List(); - private readonly List inputFields = new List(); + //private readonly List inputFields = new List(); + private readonly List argInputFields = new List(); + private readonly List genericInputFields = new List(); public void OnBorrowedFromPool(CacheMember owner) { @@ -52,7 +54,9 @@ namespace UnityExplorer.UI.CacheObject.Views public void OnReturnToPool() { - foreach (var input in inputFields) + foreach (var input in argInputFields) + input.Text = ""; + foreach (var input in genericInputFields) input.Text = ""; this.Owner = null; @@ -190,19 +194,20 @@ namespace UnityExplorer.UI.CacheObject.Views var arg = arguments[i]; + if (i >= argRows.Count) AddArgRow(i, false); argRows[i].SetActive(true); argLabels[i].text = $"{SignatureHighlighter.Parse(arg.ParameterType, false)} {arg.Name}"; if (arg.ParameterType == typeof(string)) - inputFields[i].PlaceholderText.text = ""; + argInputFields[i].PlaceholderText.text = ""; else { var elemType = arg.ParameterType; if (elemType.IsByRef) elemType = elemType.GetElementType(); - inputFields[i].PlaceholderText.text = $"eg. {ParseUtility.GetExampleInput(elemType)}"; + argInputFields[i].PlaceholderText.text = $"eg. {ParseUtility.GetExampleInput(elemType)}"; } } } @@ -215,7 +220,7 @@ namespace UnityExplorer.UI.CacheObject.Views AddArgRow(index, genericArgHolder, genericArgRows, genericArgLabels, genericInput, true); } - private void AddArgRow(int index, GameObject parent, List objectList, List labelList, string[] inputArray, bool autocomplete) + private void AddArgRow(int index, GameObject parent, List objectList, List labelList, string[] inputArray, bool generic) { var horiGroup = UIFactory.CreateUIObject("ArgRow_" + index, parent); UIFactory.SetLayoutElement(horiGroup, minHeight: 25, flexibleHeight: 50, minWidth: 50, flexibleWidth: 9999); @@ -233,9 +238,13 @@ namespace UnityExplorer.UI.CacheObject.Views inputField.Component.lineType = InputField.LineType.MultiLineNewline; inputField.UIRoot.AddComponent().verticalFit = ContentSizeFitter.FitMode.PreferredSize; inputField.OnValueChanged += (string val) => { inputArray[index] = val; }; - inputFields.Add(inputField); - if (autocomplete) + if (!generic) + argInputFields.Add(inputField); + else + genericInputFields.Add(inputField); + + if (generic) genericAutocompleters.Add(new TypeCompleter(null, inputField)); }