diff options
author | Juan Linietsky <reduzio@gmail.com> | 2015-08-25 23:09:41 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2015-08-25 23:09:41 -0300 |
commit | b0be30d9efb11aba10fd97c71fec47e34ea88ca1 (patch) | |
tree | e57d8515a5354c4aecb3ceaf4ad4235465fc0c96 /tools/editor/array_property_edit.cpp | |
parent | d50921b55089e0396ee5f11675b6093dd49b7cbb (diff) | |
download | redot-engine-b0be30d9efb11aba10fd97c71fec47e34ea88ca1.tar.gz |
make sure array is created if not existing, as noted by Guilherme Felipe
Diffstat (limited to 'tools/editor/array_property_edit.cpp')
-rw-r--r-- | tools/editor/array_property_edit.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/editor/array_property_edit.cpp b/tools/editor/array_property_edit.cpp index 61081b73d1..9cd443270b 100644 --- a/tools/editor/array_property_edit.cpp +++ b/tools/editor/array_property_edit.cpp @@ -9,7 +9,12 @@ Variant ArrayPropertyEdit::get_array() const{ Object*o = ObjectDB::get_instance(obj); if (!o) return Array(); - return o->get(property); + Variant arr=o->get(property); + if (!arr.is_array()) { + Variant::CallError ce; + arr=Variant::construct(default_type,NULL,0,ce); + } + return arr; } void ArrayPropertyEdit::_notif_change() { @@ -195,11 +200,12 @@ void ArrayPropertyEdit::_get_property_list( List<PropertyInfo> *p_list) const{ } -void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop) { +void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop,Variant::Type p_deftype) { page=0; property=p_prop; obj=p_obj->get_instance_ID(); + default_type=p_deftype; } @@ -220,5 +226,6 @@ ArrayPropertyEdit::ArrayPropertyEdit() vtypes+=","; vtypes+=Variant::get_type_name( Variant::Type(i) ); } + default_type=Variant::NIL; } |