mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 12:12:28 +00:00
Fix theme_override tooltip caching
theme_override properties have some special handling in EditorInspector. When caching documentation info for properties, the theme_item_name value (used only for theme_overrides) was not being cached, so it would only be included on first use. This meant that theme_override property tooltips would show up in the editor the first time a node was selected, but not again after selecting something else/reselecting. Added theme_item_name to caching to fix this. Fixes #90395
This commit is contained in:
parent
a7b860250f
commit
050ca0c5ed
@ -3220,12 +3220,13 @@ void EditorInspector::update_tree() {
|
||||
}
|
||||
|
||||
// Search for the doc path in the cache.
|
||||
HashMap<StringName, HashMap<StringName, String>>::Iterator E = doc_path_cache.find(classname);
|
||||
HashMap<StringName, HashMap<StringName, DocCacheInfo>>::Iterator E = doc_cache.find(classname);
|
||||
if (E) {
|
||||
HashMap<StringName, String>::Iterator F = E->value.find(propname);
|
||||
HashMap<StringName, DocCacheInfo>::Iterator F = E->value.find(propname);
|
||||
if (F) {
|
||||
found = true;
|
||||
doc_path = F->value;
|
||||
doc_path = F->value.doc_path;
|
||||
theme_item_name = F->value.theme_item_name;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3246,21 +3247,20 @@ void EditorInspector::update_tree() {
|
||||
theme_item_name = F->value.theme_properties[i].name;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_native_class) {
|
||||
doc_path_cache[classname][propname] = doc_path;
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < F->value.properties.size(); i++) {
|
||||
String doc_path_current = "class_property:" + F->value.name + ":" + F->value.properties[i].name;
|
||||
if (F->value.properties[i].name == propname.operator String()) {
|
||||
doc_path = doc_path_current;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_native_class) {
|
||||
doc_path_cache[classname][propname] = doc_path;
|
||||
}
|
||||
}
|
||||
DocCacheInfo cache_info;
|
||||
cache_info.doc_path = doc_path;
|
||||
cache_info.theme_item_name = theme_item_name;
|
||||
doc_cache[classname][propname] = cache_info;
|
||||
}
|
||||
|
||||
if (!doc_path.is_empty() || F->value.inherits.is_empty()) {
|
||||
|
@ -505,7 +505,12 @@ class EditorInspector : public ScrollContainer {
|
||||
int property_focusable;
|
||||
int update_scroll_request;
|
||||
|
||||
HashMap<StringName, HashMap<StringName, String>> doc_path_cache;
|
||||
struct DocCacheInfo {
|
||||
String doc_path;
|
||||
String theme_item_name;
|
||||
};
|
||||
|
||||
HashMap<StringName, HashMap<StringName, DocCacheInfo>> doc_cache;
|
||||
HashSet<StringName> restart_request_props;
|
||||
HashMap<String, String> custom_property_descriptions;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user