summaryrefslogtreecommitdiff
path: root/tools/doc/doc_data.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/doc/doc_data.cpp')
-rw-r--r--tools/doc/doc_data.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp
index 8065ad0e95..10d4b6461d 100644
--- a/tools/doc/doc_data.cpp
+++ b/tools/doc/doc_data.cpp
@@ -132,6 +132,9 @@ void DocData::merge_from(const DocData& p_data) {
const PropertyDoc &pf = cf.properties[j];
p.description=pf.description;
+ p.setter=pf.setter;
+ p.getter=pf.getter;
+
break;
}
}
@@ -175,6 +178,30 @@ void DocData::generate(bool p_basic_types) {
c.inherits=ClassDB::get_parent_class(name);
c.category=ClassDB::get_category(name);
+
+ List<PropertyInfo> properties;
+ ClassDB::get_property_list(name,&properties,true);
+
+ for(List<PropertyInfo>::Element *E=properties.front();E;E=E->next()) {
+ if (E->get().usage& PROPERTY_USAGE_GROUP || E->get().usage& PROPERTY_USAGE_CATEGORY)
+ continue;
+
+ PropertyDoc prop;
+ StringName setter = ClassDB::get_property_setter(name,E->get().name);
+ StringName getter = ClassDB::get_property_getter(name,E->get().name);
+
+ prop.name=E->get().name;
+ prop.setter=setter;
+ prop.getter=getter;
+ if (E->get().type==Variant::OBJECT && E->get().hint==PROPERTY_HINT_RESOURCE_TYPE)
+ prop.type=E->get().hint_string;
+ else
+ prop.type=Variant::get_type_name(E->get().type);
+
+ c.properties.push_back(prop);
+ }
+
+
List<MethodInfo> method_list;
ClassDB::get_method_list(name,&method_list,true);
method_list.sort();
@@ -825,6 +852,13 @@ Error DocData::_load(Ref<XMLParser> parser) {
prop.name=parser->get_attribute_value("name");
ERR_FAIL_COND_V(!parser->has_attribute("type"),ERR_FILE_CORRUPT);
prop.type=parser->get_attribute_value("type");
+ if (parser->has_attribute("setter"))
+ prop.setter=parser->get_attribute_value("setter");
+ if (parser->has_attribute("getter"))
+ prop.getter=parser->get_attribute_value("getter");
+ if (parser->has_attribute("brief"))
+ prop.brief_description=parser->get_attribute_value("brief").xml_unescape();
+
parser->read();
if (parser->get_node_type()==XMLParser::NODE_TEXT)
prop.description=parser->get_node_data().strip_edges();
@@ -1009,7 +1043,7 @@ Error DocData::save(const String& p_path) {
PropertyDoc &p=c.properties[i];
- _write_string(f,2,"<member name=\""+p.name+"\" type=\""+p.type+"\">");
+ _write_string(f,2,"<member name=\""+p.name+"\" type=\""+p.type+"\" setter=\""+p.setter+"\" getter=\""+p.getter+"\" brief=\""+p.brief_description.xml_escape(true)+"\">");
if (p.description!="")
_write_string(f,3,p.description.xml_escape());
_write_string(f,2,"</member>");