Add a VScript func to sanitize variant values
Backported to 3.2
This commit is contained in:
parent
784e854e58
commit
d35ced06a6
@ -991,8 +991,8 @@ void VisualScriptEditor::_update_members() {
|
|||||||
TreeItem *ti = members->create_item(variables);
|
TreeItem *ti = members->create_item(variables);
|
||||||
|
|
||||||
ti->set_text(0, E->get());
|
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_icon(0, type_icons[script->get_variable_info(E->get()).type]);
|
||||||
|
|
||||||
ti->set_selectable(0, true);
|
ti->set_selectable(0, true);
|
||||||
@ -1032,6 +1032,18 @@ void VisualScriptEditor::_update_members() {
|
|||||||
updating_members = false;
|
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) {
|
||||||
|
Variant::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() {
|
void VisualScriptEditor::_member_selected() {
|
||||||
|
|
||||||
if (updating_members)
|
if (updating_members)
|
||||||
|
@ -146,6 +146,7 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||||||
bool updating_members;
|
bool updating_members;
|
||||||
|
|
||||||
void _update_members();
|
void _update_members();
|
||||||
|
String _sanitized_variant_text(const StringName &property_name);
|
||||||
|
|
||||||
StringName selected;
|
StringName selected;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user