diff options
Diffstat (limited to 'editor/doc_data.cpp')
-rw-r--r-- | editor/doc_data.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/editor/doc_data.cpp b/editor/doc_data.cpp index 53641da0e9..c52d91b03d 100644 --- a/editor/doc_data.cpp +++ b/editor/doc_data.cpp @@ -881,9 +881,14 @@ Error DocData::_load(Ref<XMLParser> parser) { String name3 = parser->get_node_name(); if (name3 == "link") { + TutorialDoc tutorial; + if (parser->has_attribute("title")) { + tutorial.title = parser->get_attribute_value("title"); + } parser->read(); if (parser->get_node_type() == XMLParser::NODE_TEXT) { - c.tutorials.push_back(parser->get_node_data().strip_edges()); + tutorial.link = parser->get_node_data().strip_edges(); + c.tutorials.push_back(tutorial); } } else { ERR_FAIL_V_MSG(ERR_FILE_CORRUPT, "Invalid tag in doc file: " + name3 + "."); @@ -1055,7 +1060,9 @@ Error DocData::save_classes(const String &p_default_path, const Map<String, Stri _write_string(f, 1, "<tutorials>"); for (int i = 0; i < c.tutorials.size(); i++) { - _write_string(f, 2, "<link>" + c.tutorials.get(i).xml_escape() + "</link>"); + TutorialDoc tutorial = c.tutorials.get(i); + String title_attribute = (!tutorial.title.empty()) ? " title=\"" + tutorial.title.xml_escape() + "\"" : ""; + _write_string(f, 2, "<link" + title_attribute + ">" + tutorial.link.xml_escape() + "</link>"); } _write_string(f, 1, "</tutorials>"); |