diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-05-07 17:10:14 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-05-07 17:10:14 -0400 |
commit | 0038820f473664a9a4fb524537cd846a9e024661 (patch) | |
tree | a7232474f878d08a3618ebe86bccbd15f1146dee /libs | |
parent | e902029b26a6e36befaeb9366a19d3796fa53a95 (diff) |
copy contents of analysis, plugins, automation and externals folders during save-as
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/session_state.cc | 34 |
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; |