summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-05-07 17:10:14 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-05-07 17:10:14 -0400
commit0038820f473664a9a4fb524537cd846a9e024661 (patch)
treea7232474f878d08a3618ebe86bccbd15f1146dee /libs
parente902029b26a6e36befaeb9366a19d3796fa53a95 (diff)
copy contents of analysis, plugins, automation and externals folders during save-as
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/session_state.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 84518592a9..a4492f0223 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -4189,6 +4189,40 @@ Session::save_as (SaveAs& saveas)
}
+ /* copy optional folders, if any */
+
+ string old = plugins_dir ();
+ if (Glib::file_test (old, Glib::FILE_TEST_EXISTS)) {
+ string newdir = Glib::build_filename (to_dir, Glib::path_get_basename (old));
+ copy_files (old, newdir);
+ }
+
+ old = externals_dir ();
+ if (Glib::file_test (old, Glib::FILE_TEST_EXISTS)) {
+ string newdir = Glib::build_filename (to_dir, Glib::path_get_basename (old));
+ copy_files (old, newdir);
+ }
+
+ old = automation_dir ();
+ if (Glib::file_test (old, Glib::FILE_TEST_EXISTS)) {
+ string newdir = Glib::build_filename (to_dir, Glib::path_get_basename (old));
+ copy_files (old, newdir);
+ }
+
+ if (saveas.copy_media) {
+
+ /* only needed if we are copying media, since the
+ * analysis data refers to media data
+ */
+
+ old = analysis_dir ();
+ if (Glib::file_test (old, Glib::FILE_TEST_EXISTS)) {
+ string newdir = Glib::build_filename (to_dir, "analysis");
+ copy_files (old, newdir);
+ }
+ }
+
+
_path = to_dir;
_current_snapshot_name = saveas.new_name;
_name = saveas.new_name;