From e481963920911afa653e3cce3cdb2cd3a4c4c046 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 2 Aug 2009 00:32:26 +0000 Subject: Fix import dialog so that file number progress gets updated correctly. Stop a new progress dialog being popped up for each file. git-svn-id: svn://localhost/ardour2/branches/3.0@5451 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_audio_import.cc | 69 +++++++++++++------------------------- 1 file changed, 23 insertions(+), 46 deletions(-) (limited to 'gtk2_ardour/editor_audio_import.cc') diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 884e890fbc..5b007f0fc5 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -352,61 +352,38 @@ Editor::do_import (vector paths, ImportDisposition chns, ImportMode mod } else { - bool replace = false; - bool ok = true; - vector::size_type total = paths.size(); - - for (vector::iterator a = paths.begin(); a != paths.end() && ok; ++a) { + for (vector::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; } } -- cgit v1.2.3