}
/** @return TextContents from node or <Text> nodes under node (according to version).
- * The list could be empty if no TextContents are found.
+ * The vector could be empty if no TextContents are found.
*/
-list<shared_ptr<TextContent>>
+vector<shared_ptr<TextContent>>
TextContent::from_xml (Content* parent, cxml::ConstNodePtr node, int version, list<string>& notes)
{
if (version < 34) {
return { make_shared<TextContent>(parent, node, version, notes) };
}
- list<shared_ptr<TextContent>> c;
+ vector<shared_ptr<TextContent>> content;
for (auto i: node->node_children("Text")) {
- c.push_back (make_shared<TextContent>(parent, i, version, notes));
+ content.push_back(make_shared<TextContent>(parent, i, version, notes));
}
- return c;
+ return content;
}
+
TextContent::TextContent (Content* parent, cxml::ConstNodePtr node, int version, list<string>& notes)
: ContentPart (parent)
, _use (false)
_effect = dcp::Effect::BORDER;
} else if (node->optional_bool_child("Shadow").get_value_or(false)) {
_effect = dcp::Effect::SHADOW;
- } else {
- _effect = dcp::Effect::NONE;
}
auto effect = node->optional_string_child("Effect");
if (lang) {
try {
_language = dcp::LanguageTag(lang->content());
- auto add = lang->optional_bool_attribute("Additional");
- _language_is_additional = add && *add;
+ auto additional = lang->optional_bool_attribute("Additional");
+ if (!additional) {
+ additional = lang->optional_bool_attribute("additional");
+ }
+ _language_is_additional = additional.get_value_or(false);
} catch (dcp::LanguageTagError&) {
/* The language tag can be empty or invalid if it was loaded from a
* 2.14.x metadata file; we'll just ignore it in that case.
if (_language) {
auto lang = text->add_child("Language");
lang->add_child_text (_language->to_string());
- lang->set_attribute ("Additional", _language_is_additional ? "1" : "0");
+ lang->set_attribute("additional", _language_is_additional ? "1" : "0");
}
}