summaryrefslogtreecommitdiffstats
path: root/tools/editor/array_property_edit.cpp
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2015-08-25 23:09:41 -0300
committerJuan Linietsky <reduzio@gmail.com>2015-08-25 23:09:41 -0300
commitb0be30d9efb11aba10fd97c71fec47e34ea88ca1 (patch)
treee57d8515a5354c4aecb3ceaf4ad4235465fc0c96 /tools/editor/array_property_edit.cpp
parentd50921b55089e0396ee5f11675b6093dd49b7cbb (diff)
downloadredot-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.cpp11
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;
}