Fix import dialog so that file number progress gets updated correctly. Stop a new...
authorCarl Hetherington <carl@carlh.net>
Sun, 2 Aug 2009 00:32:26 +0000 (00:32 +0000)
committerCarl Hetherington <carl@carlh.net>
Sun, 2 Aug 2009 00:32:26 +0000 (00:32 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@5451 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_audio_import.cc
libs/ardour/import.cc

index 884e890fbc36cbb130324c0e4910507110cd8b1b..5b007f0fc5ed90a4b685c99ccb4f001097ec52ca 100644 (file)
@@ -352,61 +352,38 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
 
        } else {
 
-               bool replace = false;
-               bool ok = true;
-               vector<ustring>::size_type total = paths.size();
-
-               for (vector<ustring>::iterator a = paths.begin(); a != paths.end() && ok; ++a) {
+               for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
 
-                       int check = check_whether_and_how_to_import(*a, true);
+                       int const check = check_whether_and_how_to_import (*a, true);
 
-                       if (check == 2 ) { 
-                               // user said skip
-                               continue;
+                       if (check != 2) {
+                               to_import.push_back (*a);
                        }
+               }
+               
+               bool ok = true;
 
-                       if (check == 0) {
-                               fatal << "Updating existing sources should be disabled!" << endl;
-                               replace = true;
-                       } else if (check == 1) {
-                               replace = false;
-                       }
+               switch (chns) {
+               case Editing::ImportDistinctFiles:
                        
-
-
-                       switch (chns) {
-                       case Editing::ImportDistinctFiles:
-                               
-                               to_import.clear ();
-                               to_import.push_back (*a);
-                               
-                               if (mode == Editing::ImportToTrack) {
-                                       track = get_nth_selected_audio_track (nth++);
-                               }
-                               
-                               ok = (import_sndfiles (to_import, mode, quality, pos, 1, -1, track, replace, total) == 0);
-                               break;
-                               
-                       case Editing::ImportDistinctChannels:
-                               
-                               to_import.clear ();
-                               to_import.push_back (*a);
+                       if (mode == Editing::ImportToTrack) {
+                               track = get_nth_selected_audio_track (nth++);
+                       }
                                
-                               ok = (import_sndfiles (to_import, mode, quality, pos, -1, -1, track, replace, total) == 0);
-                               break;
+                       ok = (import_sndfiles (to_import, mode, quality, pos, 1, -1, track, false, to_import.size()) == 0);
+                       break;
                                
-                       case Editing::ImportSerializeFiles:
+               case Editing::ImportDistinctChannels:
+                       ok = (import_sndfiles (to_import, mode, quality, pos, -1, -1, track, false, to_import.size()) == 0);
+                       break;
                                
-                               to_import.clear ();
-                               to_import.push_back (*a);
-
-                               ok = (import_sndfiles (to_import, mode, quality, pos, 1, 1, track, replace, total) == 0);
-                               break;
+               case Editing::ImportSerializeFiles:
+                       ok = (import_sndfiles (to_import, mode, quality, pos, 1, 1, track, false, to_import.size()) == 0);
+                       break;
 
-                       case Editing::ImportMergeFiles:
-                               // Not entered, handled in earlier if() branch
-                               break;
-                       }
+               case Editing::ImportMergeFiles:
+                       // Not entered, handled in earlier if() branch
+                       break;
                }
        }
 
index 02c5481ece080d6123c2d90ed4e2c872ab54511d..735127e588827a32c8b8a771ef9a1177d9398b04 100644 (file)
@@ -395,7 +395,7 @@ Session::import_audiofiles (ImportStatus& status)
        uint channels = 0;
 
        status.sources.clear ();
-       
+
        for (vector<Glib::ustring>::iterator p = status.paths.begin();
                        p != status.paths.end() && !status.cancel;
                        ++p, ++cnt)
@@ -404,7 +404,7 @@ Session::import_audiofiles (ImportStatus& status)
                std::auto_ptr<Evoral::SMF>          smf_reader;
                const DataType type = ((*p).rfind(".mid") != string::npos) ? 
                        DataType::MIDI : DataType::AUDIO;
-               
+
                if (type == DataType::AUDIO) {
                        try {
                                source = open_importable_source (*p, frame_rate(), status.quality);
@@ -442,7 +442,9 @@ Session::import_audiofiles (ImportStatus& status)
                // copy on cancel/failure so that any files that were created will be removed below
                std::copy (newfiles.begin(), newfiles.end(), std::back_inserter(all_new_sources));
 
-               if (status.cancel) break;
+               if (status.cancel) {
+                       break;
+               }
 
                for (Sources::iterator i = newfiles.begin(); i != newfiles.end(); ++i) {
                        if ((afs = boost::dynamic_pointer_cast<AudioFileSource>(*i)) != 0) {