[GUI] Add exact search option for Scene Hierarchy. Close #49

This commit is contained in:
VaDiM
2025-05-10 01:09:54 +03:00
parent 97fa42742b
commit b0a051fc47
2 changed files with 37 additions and 9 deletions

View File

@ -616,9 +616,10 @@ namespace AssetStudioGUI
{
if (treeSrcResults.Count == 0)
{
var isExactSearch = sceneExactSearchCheckBox.Checked;
foreach (TreeNode node in sceneTreeView.Nodes)
{
TreeNodeSearch(node);
TreeNodeSearch(node, isExactSearch);
}
}
if (treeSrcResults.Count > 0)
@ -634,19 +635,28 @@ namespace AssetStudioGUI
}
}
private void TreeNodeSearch(TreeNode treeNode)
private void TreeNodeSearch(TreeNode treeNode, bool isExactSearch)
{
if (treeNode.Text.IndexOf(treeSearch.Text, StringComparison.OrdinalIgnoreCase) >= 0)
if (isExactSearch && string.Equals(treeNode.Text, treeSearch.Text, StringComparison.InvariantCultureIgnoreCase))
{
treeSrcResults.Add(treeNode);
}
else if (!isExactSearch && treeNode.Text.IndexOf(treeSearch.Text, StringComparison.OrdinalIgnoreCase) >= 0)
{
treeSrcResults.Add(treeNode);
}
foreach (TreeNode node in treeNode.Nodes)
{
TreeNodeSearch(node);
TreeNodeSearch(node, isExactSearch);
}
}
private void sceneExactSearchCheckBox_CheckedChanged(object sender, EventArgs e)
{
treeSearch_TextChanged(sender, e);
}
private void sceneTreeView_AfterCheck(object sender, TreeViewEventArgs e)
{
if (!treeRecursionEnabled)