summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/template_dialog.cc10
-rw-r--r--libs/ardour/route.cc1
-rw-r--r--libs/ardour/session_state.cc7
3 files changed, 10 insertions, 8 deletions
diff --git a/gtk2_ardour/template_dialog.cc b/gtk2_ardour/template_dialog.cc
index cce8d2eb3f..6002089aa6 100644
--- a/gtk2_ardour/template_dialog.cc
+++ b/gtk2_ardour/template_dialog.cc
@@ -256,14 +256,14 @@ TemplateManager::save_template_desc ()
return;
}
- XMLNode* desc = tree.root()->child (X_("description"));
- if (!desc) {
- desc = new XMLNode (X_("description"));
- tree.root()->add_child_nocopy (*desc);
- }
+ tree.root()->remove_nodes (X_("description"));
+ XMLNode* desc = new XMLNode (X_("description"));
+
XMLNode* dn = new XMLNode (X_("content"), desc_txt);
desc->add_child_nocopy (*dn);
+ tree.root()->add_child_nocopy (*desc);
+
if (!tree.write ()) {
error << string_compose(X_("Could not write to template file \"%1\"."), file_path) << endmsg;
return;
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 5cd9b576a5..e89b9b8b91 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -4022,6 +4022,7 @@ Route::save_as_template (const string& path, const string& name, const string& d
XMLNode& node (state (false));
node.set_property (X_("name"), name);
+ node.remove_nodes (X_("description"));
if (!description.empty()) {
XMLNode* desc = new XMLNode(X_("description"));
XMLNode* desc_cont = new XMLNode(X_("content"), description);
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 0bf09f76c6..287822a6a6 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -2414,12 +2414,13 @@ Session::save_template (const string& template_name, const string& description,
XMLNode* root;
{
PBD::Unwinder<std::string> uw (_template_state_dir, template_dir_path);
- root = &get_template();
+ root = &get_template ();
}
+ root->remove_nodes (X_("description"));
if (!description.empty()) {
- XMLNode* desc = new XMLNode(X_("description"));
- XMLNode* desc_cont = new XMLNode(X_("content"), description);
+ XMLNode* desc = new XMLNode (X_("description"));
+ XMLNode* desc_cont = new XMLNode (X_("content"), description);
desc->add_child_nocopy (*desc_cont);
root->add_child_nocopy (*desc);