CyberAgentGameEntertainment/SmartAddresser

[Bug] Layout Viewer window search problems

IceCone-Topy opened this issue · 3 comments

Here are some problems in Layout Viewer window

  1. Search drop down item should be a single item, not a folder path
    image
  2. Change the search drop down select "Asset Path", "Labels" and "Versions", then search anything will show null reference exception
Console Log
NullReferenceException: Object reference not set to an instance of an object
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.DoesCellMatchSearch (UnityEditor.IMGUI.Controls.TreeViewItem item, System.Int32 columnIndex, System.String search) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:249)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.DoesItemMatchSearch (UnityEditor.IMGUI.Controls.TreeViewItem item, System.String search) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:267)
UnityEditor.IMGUI.Controls.TreeView+TreeViewControlDataSource.SearchFullTree (System.String search, System.Collections.Generic.List`1[T] result) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeView.BuildRows (UnityEditor.IMGUI.Controls.TreeViewItem root) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.BuildRows (UnityEditor.IMGUI.Controls.TreeViewItem root) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:259)
UnityEditor.IMGUI.Controls.TreeView+TreeViewControlDataSource.FetchData () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.LazyTreeViewDataSource.InitIfNeeded () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeViewController.OnGUI (UnityEngine.Rect rect, System.Int32 keyboardControlID) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeView.TreeViewWithMultiColumnHeader (UnityEngine.Rect rect) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeView.OnGUI (UnityEngine.Rect rect) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.OnGUI (UnityEngine.Rect rect) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:229)
SmartAddresser.Editor.Core.Tools.Addresser.LayoutViewer.LayoutViewerView.DrawTopView () (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Core/Tools/Addresser/LayoutViewer/LayoutViewerView.cs:110)
SmartAddresser.Editor.Core.Tools.Addresser.LayoutViewer.LayoutViewerView.DrawViewerView () (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Core/Tools/Addresser/LayoutViewer/LayoutViewerView.cs:92)
SmartAddresser.Editor.Core.Tools.Addresser.LayoutViewer.LayoutViewerView.DoLayout () (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Core/Tools/Addresser/LayoutViewer/LayoutViewerView.cs:81)
SmartAddresser.Editor.Core.Tools.Addresser.LayoutViewer.LayoutViewerWindow.OnGUI () (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Core/Tools/Addresser/LayoutViewer/LayoutViewerWindow.cs:43)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.DockArea.OldOnGUI () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.KeyboardEventDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <e606f104eb294f35aabd66cb405315ff>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <e2183e8e6ce34a9f8625fb09a25fb001>:0)
  1. When search field is already has some string, then change to any of "Asset Path", "Labels" and "Versions" will cause another null reference exception.
Console Log
NullReferenceException: Object reference not set to an instance of an object
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.DoesCellMatchSearch (UnityEditor.IMGUI.Controls.TreeViewItem item, System.Int32 columnIndex, System.String search) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:249)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.DoesItemMatchSearch (UnityEditor.IMGUI.Controls.TreeViewItem item, System.String search) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:267)
UnityEditor.IMGUI.Controls.TreeView+TreeViewControlDataSource.SearchFullTree (System.String search, System.Collections.Generic.List`1[T] result) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeView.BuildRows (UnityEditor.IMGUI.Controls.TreeViewItem root) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.BuildRows (UnityEditor.IMGUI.Controls.TreeViewItem root) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:259)
UnityEditor.IMGUI.Controls.TreeView+TreeViewControlDataSource.FetchData () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeViewDataSource.ReloadData () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeView+TreeViewControlDataSource.ReloadData () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeViewController.ReloadData () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
UnityEditor.IMGUI.Controls.TreeView.Reload () (at <ce529ddd5fb1424f905ed386885ff5fe>:0)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewBase.set_SearchColumnIndex (System.Int32 value) (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewBase.cs:50)
SmartAddresser.Editor.Foundation.EasyTreeView.TreeViewSearchField+<>c__DisplayClass19_0.<OnToolbarGUI>b__0 () (at Library/PackageCache/jp.co.cyberagent.smartaddresser@6bef5b66f4/Editor/Foundation/EasyTreeView/TreeViewSearchField.cs:121)
UnityEditor.GenericMenu.CatchMenu (System.Object userData, System.String[] options, System.Int32 selected) (at <ce529ddd5fb1424f905ed386885ff5fe>:0)

Thank you for the report! I will make the necessary fixes.

I tried it. It works good!
thanks.