diff options
author | Francois Belair <razoric480@gmail.com> | 2020-09-07 14:51:51 -0400 |
---|---|---|
committer | Francois Belair <razoric480@gmail.com> | 2020-09-18 11:19:53 -0400 |
commit | a598c77058ad25f0272b8978e8594be13a26d3d4 (patch) | |
tree | 121c07561a8c8d6700fb82b9e935a69bf92c9c6d /modules/visual_script/visual_script_editor.cpp | |
parent | 82efb06aaa946d23cab13ee6db796ebb26e19b96 (diff) | |
download | redot-engine-a598c77058ad25f0272b8978e8594be13a26d3d4.tar.gz |
Add a VScript func to sanitize variant values
Fixes #27611
Diffstat (limited to 'modules/visual_script/visual_script_editor.cpp')
-rw-r--r-- | modules/visual_script/visual_script_editor.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index 5581ea9318..d90cbe72a3 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -1124,8 +1124,8 @@ void VisualScriptEditor::_update_members() { TreeItem *ti = members->create_item(variables); ti->set_text(0, E->get()); - Variant var = script->get_variable_default_value(E->get()); - ti->set_suffix(0, "= " + String(var)); + + ti->set_suffix(0, "= " + _sanitized_variant_text(E->get())); ti->set_icon(0, type_icons[script->get_variable_info(E->get()).type]); ti->set_selectable(0, true); @@ -1167,6 +1167,18 @@ void VisualScriptEditor::_update_members() { updating_members = false; } +String VisualScriptEditor::_sanitized_variant_text(const StringName &property_name) { + Variant var = script->get_variable_default_value(property_name); + + if (script->get_variable_info(property_name).type != Variant::NIL) { + Callable::CallError ce; + const Variant *converted = &var; + var = Variant::construct(script->get_variable_info(property_name).type, &converted, 1, ce, false); + } + + return String(var); +} + void VisualScriptEditor::_member_selected() { if (updating_members) { return; |