summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvano Cerza <silvanocerza@gmail.com>2019-10-24 21:56:05 +0200
committerSilvano Cerza <silvanocerza@gmail.com>2019-11-04 20:24:59 +0100
commit84410f937e6504f72e8a35becf237049b640b39f (patch)
treea300c8b4be2a49f2660afdb5ab2579958296ec9d
parentdc114fa2ef336646f56d71322ba0236c00f8228e (diff)
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.
-rw-r--r--editor/editor_inspector.cpp2
-rw-r--r--editor/editor_sectioned_inspector.cpp6
2 files changed, 4 insertions, 4 deletions
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index 96b6a32914..ff07a59204 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -1595,7 +1595,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 abff8190af..7dde9f55cc 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<String> 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++) {