diff options
| author | Bojidar Marinov | 2018-02-05 16:41:13 +0200 |
|---|---|---|
| committer | Bojidar Marinov | 2018-02-05 16:41:13 +0200 |
| commit | d855fdb45130a5029c07131c42e42cfe6c9fdf6e (patch) | |
| tree | 23ba6987df33ea24c06a7366057ab87a7b95adef /editor/property_editor.cpp | |
| parent | ea99b90a77228189d6dc38ab7b7ada967d668ed8 (diff) | |
| download | godot-d855fdb45130a5029c07131c42e42cfe6c9fdf6e.tar.gz godot-d855fdb45130a5029c07131c42e42cfe6c9fdf6e.tar.zst godot-d855fdb45130a5029c07131c42e42cfe6c9fdf6e.zip | |
Allow exporting arrays of resources in GDScript
Fixes #15961
Diffstat (limited to '')
| -rw-r--r-- | editor/property_editor.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index 87906c5a9..0fc46d223 100644 --- a/editor/property_editor.cpp +++ b/editor/property_editor.cpp @@ -3228,22 +3228,34 @@ void PropertyEditor::update_tree() { while (hint.begins_with(itos(Variant::ARRAY) + ":")) { type_name += "<Array"; type_name_suffix += ">"; - hint = hint.substr(2, hint.size() - 2); + hint = hint.right(2); } if (hint.find(":") >= 0) { - hint = hint.substr(0, hint.find(":")); + int colon_pos = hint.find(":"); + String hint_string = hint.right(colon_pos + 1); + hint = hint.left(colon_pos); + + PropertyHint property_hint = PROPERTY_HINT_NONE; + if (hint.find("/") >= 0) { - hint = hint.substr(0, hint.find("/")); + int slash_pos = hint.find("/"); + property_hint = PropertyHint(hint.right(slash_pos + 1).to_int()); + hint = hint.left(slash_pos); + } + + if (property_hint == PROPERTY_HINT_RESOURCE_TYPE) { + type_name += "<" + hint_string; + } else { + type_name += "<" + Variant::get_type_name(Variant::Type(hint.to_int())); } - type_name += "<" + Variant::get_type_name(Variant::Type(hint.to_int())); type_name_suffix += ">"; } type_name += type_name_suffix; if (v.is_array()) - item->set_text(1, type_name + "[" + itos(v.call("size")) + "]"); + item->set_text(1, type_name + "(" + itos(v.call("size")) + ")"); else - item->set_text(1, type_name + "[]"); + item->set_text(1, type_name + "()"); if (show_type_icons) item->set_icon(0, get_icon("ArrayData", "EditorIcons")); |
