From e2ac4195b66783f9021ffbebdede5fb7c8719659 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Thu, 24 Oct 2019 21:56:05 +0200 Subject: [PATCH] Improved search in settings dialogs Settings search used to work only on properties, so if a searchbox text was a substring of a category but not of a property the whole category would be filtered out and no property would be shown. Now the behaviour is changed so that when the searchbox text is a substring of a category all its properties are shown too. The previous behaviour is still present so that in case the searchbox text is both a substring of a category and a property of another category, all properties of the first category are shown and only the property of the second category is shown. (cherry picked from commit 84410f937e6504f72e8a35becf237049b640b39f) --- editor/editor_inspector.cpp | 2 +- editor/editor_sectioned_inspector.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 56da7d93fa6..7c1e58862ea 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -1596,7 +1596,7 @@ void EditorInspector::update_tree() { if (capitalize_paths) cat = cat.capitalize(); - if (!filter.is_subsequence_ofi(cat) && !filter.is_subsequence_ofi(name)) + if (!filter.is_subsequence_ofi(cat) && !filter.is_subsequence_ofi(name) && property_prefix.to_lower().find(filter.to_lower()) == -1) continue; } diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index 28825b45e1a..2090c12c91b 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -245,6 +245,9 @@ void SectionedInspector::update_category_list() { if (pi.name.find(":") != -1 || pi.name == "script" || pi.name == "resource_name" || pi.name == "resource_path" || pi.name == "resource_local_to_scene" || pi.name.begins_with("_global_script")) continue; + if (!filter.empty() && !filter.is_subsequence_ofi(pi.name) && !filter.is_subsequence_ofi(pi.name.replace("/", " ").capitalize())) + continue; + int sp = pi.name.find("/"); if (sp == -1) pi.name = "global/" + pi.name; @@ -252,9 +255,6 @@ void SectionedInspector::update_category_list() { Vector sectionarr = pi.name.split("/"); String metasection; - if (!filter.empty() && !filter.is_subsequence_ofi(sectionarr[sectionarr.size() - 1].capitalize())) - continue; - int sc = MIN(2, sectionarr.size() - 1); for (int i = 0; i < sc; i++) {