Use XMLNode::get/set_property in ARDOUR::ExportFilename class
Serious improvement in code readability in ExportFilename::get_field
This commit is contained in:
parent
8f488515e6
commit
589f564ed8
|
@ -87,8 +87,8 @@ ExportFilename::get_state ()
|
||||||
|
|
||||||
FieldPair dir = analyse_folder();
|
FieldPair dir = analyse_folder();
|
||||||
child = node->add_child ("Folder");
|
child = node->add_child ("Folder");
|
||||||
child->add_property ("relative", dir.first ? "true" : "false");
|
child->set_property ("relative", dir.first);
|
||||||
child->add_property ("path", dir.second);
|
child->set_property ("path", dir.second);
|
||||||
|
|
||||||
add_field (node, "label", include_label, label);
|
add_field (node, "label", include_label, label);
|
||||||
add_field (node, "session", include_session);
|
add_field (node, "session", include_session);
|
||||||
|
@ -99,7 +99,7 @@ ExportFilename::get_state ()
|
||||||
add_field (node, "date", include_date, enum_2_string (date_format));
|
add_field (node, "date", include_date, enum_2_string (date_format));
|
||||||
|
|
||||||
XMLNode * extra_node = new XMLNode ("ExportRevision");
|
XMLNode * extra_node = new XMLNode ("ExportRevision");
|
||||||
extra_node->add_property ("revision", to_string (revision, std::dec));
|
extra_node->set_property ("revision", revision);
|
||||||
session.add_extra_xml (*extra_node);
|
session.add_extra_xml (*extra_node);
|
||||||
|
|
||||||
return *node;
|
return *node;
|
||||||
|
@ -109,7 +109,6 @@ int
|
||||||
ExportFilename::set_state (const XMLNode & node)
|
ExportFilename::set_state (const XMLNode & node)
|
||||||
{
|
{
|
||||||
XMLNode * child;
|
XMLNode * child;
|
||||||
XMLProperty const * prop;
|
|
||||||
FieldPair pair;
|
FieldPair pair;
|
||||||
|
|
||||||
child = node.child ("Folder");
|
child = node.child ("Folder");
|
||||||
|
@ -117,15 +116,14 @@ ExportFilename::set_state (const XMLNode & node)
|
||||||
|
|
||||||
folder = "";
|
folder = "";
|
||||||
|
|
||||||
if ((prop = child->property ("relative"))) {
|
bool is_relative;
|
||||||
if (string_is_affirmative (prop->value())) {
|
if (child->get_property ("relative", is_relative) && is_relative) {
|
||||||
folder = session.session_directory().root_path();
|
folder = session.session_directory ().root_path ();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((prop = child->property ("path"))) {
|
std::string tmp;
|
||||||
std::string tmp;
|
if (child->get_property ("path", tmp)) {
|
||||||
tmp = Glib::build_filename (folder, prop->value());
|
tmp = Glib::build_filename (folder, tmp);
|
||||||
if (!Glib::file_test (tmp, Glib::FILE_TEST_EXISTS)) {
|
if (!Glib::file_test (tmp, Glib::FILE_TEST_EXISTS)) {
|
||||||
warning << string_compose (_("Existing export folder for this session (%1) does not exist - ignored"), tmp) << endmsg;
|
warning << string_compose (_("Existing export folder for this session (%1) does not exist - ignored"), tmp) << endmsg;
|
||||||
} else {
|
} else {
|
||||||
|
@ -167,8 +165,8 @@ ExportFilename::set_state (const XMLNode & node)
|
||||||
extra_node = session.instant_xml ("ExportRevision");
|
extra_node = session.instant_xml ("ExportRevision");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extra_node && (prop = extra_node->property ("revision"))) {
|
if (extra_node) {
|
||||||
revision = atoi (prop->value());
|
extra_node->get_property ("revision", revision);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -365,10 +363,10 @@ ExportFilename::add_field (XMLNode * node, string const & name, bool enabled, st
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
child->add_property ("name", name);
|
child->set_property ("name", name);
|
||||||
child->add_property ("enabled", enabled ? "true" : "false");
|
child->set_property ("enabled", enabled);
|
||||||
if (!value.empty()) {
|
if (!value.empty()) {
|
||||||
child->add_property ("value", value);
|
child->set_property ("value", value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,20 +379,11 @@ ExportFilename::get_field (XMLNode const & node, string const & name)
|
||||||
XMLNodeList children = node.children();
|
XMLNodeList children = node.children();
|
||||||
|
|
||||||
for (XMLNodeList::iterator it = children.begin(); it != children.end(); ++it) {
|
for (XMLNodeList::iterator it = children.begin(); it != children.end(); ++it) {
|
||||||
XMLProperty const * prop = (*it)->property ("name");
|
std::string str;
|
||||||
if (prop && !prop->value().compare (name)) {
|
if ((*it)->get_property ("name", str) && name == str) {
|
||||||
|
|
||||||
prop = (*it)->property ("enabled");
|
(*it)->get_property ("enabled", pair.first);
|
||||||
if (prop && !prop->value().compare ("true")) {
|
(*it)->get_property ("value", pair.second);
|
||||||
pair.first = true;
|
|
||||||
} else {
|
|
||||||
pair.first = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
prop = (*it)->property ("value");
|
|
||||||
if (prop) {
|
|
||||||
pair.second = prop->value();
|
|
||||||
}
|
|
||||||
|
|
||||||
return pair;
|
return pair;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user