- Group names now get filtered again (currently doing a second filtering pass through the items)

- More cleanup
This commit is contained in:
Nils Hausfeld
2023-09-29 16:25:34 +02:00
parent 2144ad4f7b
commit a4970b7fce
2 changed files with 22 additions and 31 deletions

View File

@@ -450,7 +450,25 @@ namespace FlaxEditor.Surface.ContextMenu
return; return;
Profiler.BeginEvent("VisjectCM.OnSearchFilterChanged"); Profiler.BeginEvent("VisjectCM.OnSearchFilterChanged");
UpdateFilters();
_searchBox.Focus();
Profiler.EndEvent();
}
private void OnContextSensitiveToggleStateChanged(CheckBox checkBox)
{
// Skip events during setup or init stuff
if (IsLayoutLocked)
return;
Profiler.BeginEvent("VisjectCM.OnContextSensitiveToggleStateChanged");
_contextSensitiveSearchEnabled = checkBox.Checked;
UpdateFilters();
Profiler.EndEvent();
}
private void UpdateFilters()
{
if (string.IsNullOrEmpty(_searchBox.Text) && _selectedBox == null) if (string.IsNullOrEmpty(_searchBox.Text) && _selectedBox == null)
{ {
ResetView(); ResetView();
@@ -475,33 +493,6 @@ namespace FlaxEditor.Surface.ContextMenu
PerformLayout(); PerformLayout();
if (SelectedItem != null) if (SelectedItem != null)
_panel1.ScrollViewTo(SelectedItem); _panel1.ScrollViewTo(SelectedItem);
_searchBox.Focus();
Profiler.EndEvent();
Profiler.EndEvent();
}
private void OnContextSensitiveToggleStateChanged(CheckBox checkBox)
{
Profiler.BeginEvent("VisjectCM.OnContextSensitiveToggleStateChanged");
_contextSensitiveSearchEnabled = checkBox.Checked;
LockChildrenRecursive();
for (int i = 0; i < _groups.Count; i++)
{
_groups[i].UpdateFilter(_searchBox.Text, _contextSensitiveSearchEnabled ? _selectedBox : null);
}
SortGroups();
UnlockChildrenRecursive();
Profiler.BeginEvent("VisjectCM.Layout");
if (SelectedItem == null || !SelectedItem.VisibleInHierarchy)
SelectedItem = _groups.Find(g => g.Visible)?.Children.Find(c => c.Visible && c is VisjectCMItem) as VisjectCMItem;
PerformLayout();
if (SelectedItem != null)
_panel1.ScrollViewTo(SelectedItem);
Profiler.EndEvent();
Profiler.EndEvent(); Profiler.EndEvent();
} }

View File

@@ -100,17 +100,17 @@ namespace FlaxEditor.Surface.ContextMenu
} }
// Update header title // Update header title
/*if (QueryFilterHelper.Match(filterText, HeaderText)) if (QueryFilterHelper.Match(filterText, HeaderText))
{ {
for (int i = 0; i < _children.Count; i++) for (int i = 0; i < _children.Count; i++)
{ {
if (_children[i] is VisjectCMItem item) if (_children[i] is VisjectCMItem item)
{ {
item.Visible = true; item.UpdateFilter(null, selectedBox);
isAnyVisible |= item.Visible;
} }
} }
isAnyVisible = true; }
}*/
// Update itself // Update itself
if (isAnyVisible) if (isAnyVisible)