Fix issue with Template manager deleting templates on no-rename
authorRobin Gareus <robin@gareus.org>
Fri, 22 Sep 2017 15:16:04 +0000 (17:16 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 22 Sep 2017 15:16:04 +0000 (17:16 +0200)
If old-name equals new-name, g_rename () will fail and cleanup
will delete new-path (which is equal to old-path)

gtk2_ardour/template_dialog.cc

index e503be74a9c428d4810a210d7fd98d5257430ae1..d71125bef75d172ed130613e25bfebb4519b63fa 100644 (file)
@@ -708,6 +708,10 @@ SessionTemplateManager::rename_template (TreeModel::iterator& item, const Glib::
        const string old_name = item->get_value (_template_columns.name);
        const string new_name = string (new_name_);
 
+       if (old_name == new_name) {
+               return;
+       }
+
        const string old_file_old_path = Glib::build_filename (old_path, old_name+".template");
 
        XMLTree tree;
@@ -812,6 +816,10 @@ RouteTemplateManager::rename_template (TreeModel::iterator& item, const Glib::us
        const string old_filepath = item->get_value (_template_columns.path);
        const string new_filepath = Glib::build_filename (user_route_template_directory(), new_name+".template");
 
+       if (old_name == new_name) {
+               return;
+       }
+
        XMLTree tree;
        if (!tree.read (old_filepath)) {
                error << string_compose (_("Could not parse template file \"%1\"."), old_filepath) << endmsg;