From 6ad4820d34abd54c37e718f1cc523650029d3590 Mon Sep 17 00:00:00 2001 From: LuoZhihao Date: Tue, 10 Jun 2025 18:08:08 +0800 Subject: [PATCH] ProjectSettings: Fix missing property hint of setting overrides --- core/config/project_settings.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index f1f33eb07c7..ac08c024ef6 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -421,7 +421,7 @@ void ProjectSettings::_get_property_list(List *p_list) const { _THREAD_SAFE_METHOD_ RBSet<_VCSort> vclist; - HashMap> setting_overrides; + HashMap> setting_overrides; for (const KeyValue &E : props) { const VariantContainer *v = &E.value; @@ -464,10 +464,11 @@ void ProjectSettings::_get_property_list(List *p_list) const { } int dot = vc.name.rfind_char('.'); - if (dot != -1 && !custom_prop_info.has(vc.name)) { + if (dot != -1) { StringName n = vc.name.substr(0, dot); - if (props.has(n)) { // Property is an override. - setting_overrides[n].append(vc); + if (props.has(n)) { + // Property is an override. + setting_overrides[n].push_back(vc); } else { vclist.insert(vc); } @@ -505,6 +506,12 @@ void ProjectSettings::_get_property_list(List *p_list) const { pi.name = over.name; pi.usage = over.flags; p_list->push_back(pi); + } else if (custom_prop_info.has(base.name)) { + // Fallback to base property info. + PropertyInfo pi = custom_prop_info[base.name]; + pi.name = over.name; + pi.usage = over.flags; + p_list->push_back(pi); } else { p_list->push_back(PropertyInfo(over.type, over.name, PROPERTY_HINT_NONE, "", over.flags)); }