some more information output to log during save-as, for debugging
[ardour.git] / libs / ardour / session_state.cc
index a387f5d8c0ff573869ddaef036fec931bcc85e74..03acb63f0e0debe3ef368862fe197afe58842ff3 100644 (file)
@@ -2789,6 +2789,16 @@ Session::cleanup_sources (CleanupReport& rep)
                                        
                                        RegionFactory::remove_regions_using_source (i->second);
                                        sources.erase (i);
+                                       
+                                       // also remove source from all_sources
+                                       
+                                       for (set<string>::iterator j = all_sources.begin(); j != all_sources.end(); ++j) {
+                                               spath = Glib::path_get_basename (*j);
+                                               if ( spath == i->second->name () ) {
+                                                       all_sources.erase (j);
+                                                       break;
+                                               }
+                                       }
                                }
                        }
                }
@@ -4091,9 +4101,8 @@ Session::save_as (SaveAs& saveas)
        }
 
        try {
-               /* copy all media files. Find each location in
-                * session_dirs, and copy files from there to
-                * target.
+               /* copy all relevant files. Find each location in session_dirs,
+                * and copy files from there to target.
                 */
                
                for (vector<space_and_path>::const_iterator sd = session_dirs.begin(); sd != session_dirs.end(); ++sd) {
@@ -4124,10 +4133,12 @@ Session::save_as (SaveAs& saveas)
                                        
                                        /* media file */
 
-                                       if (saveas.copy_media) {
+                                       if (saveas.include_media && saveas.copy_media) {
                                                
                                                string to = make_new_media_path (*i, to_dir, new_folder);
 
+                                               info << "media file copying from " << from << " to " << to << endmsg;
+                                               
                                                if (!copy_file (from, to)) {
                                                        throw Glib::FileError (Glib::FileError::IO_ERROR, "copy failed");
                                                }
@@ -4155,9 +4166,13 @@ Session::save_as (SaveAs& saveas)
                                        if (do_copy) {
                                                string to = Glib::build_filename (to_dir, (*i).substr (prefix_len));
                                                
+                                               info << "attempting to make directory/folder " << to << endmsg;
+
                                                if (g_mkdir_with_parents (Glib::path_get_dirname (to).c_str(), 0755)) {
                                                        throw Glib::FileError (Glib::FileError::IO_ERROR, "cannot create required directory");
                                                }
+
+                                               info << "attempting to copy " << from << " to " << to << endmsg;
                                                
                                                if (!copy_file (from, to)) {
                                                        throw Glib::FileError (Glib::FileError::IO_ERROR, "copy failed");
@@ -4243,6 +4258,7 @@ Session::save_as (SaveAs& saveas)
                        if (internal_file_cnt) {
                                for (vector<string>::iterator s = old_search_path[DataType::AUDIO].begin(); s != old_search_path[DataType::AUDIO].end(); ++s) {
                                        ensure_search_path_includes (*s, DataType::AUDIO);
+                                       cerr << "be sure to include " << *s << "  for audio" << endl;
                                }
 
                                for (vector<string>::iterator s = old_search_path[DataType::MIDI].begin(); s != old_search_path[DataType::MIDI].end(); ++s) {