summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_audio_import.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-09-29 23:02:32 +0000
committerCarl Hetherington <carl@carlh.net>2010-09-29 23:02:32 +0000
commitcc9dabf882fde398a68ae37f5367cebed20136f2 (patch)
tree0408c49796d1438668a5bf6cd3a0af5f3039105a /gtk2_ardour/editor_audio_import.cc
parent74c69114bc99fceff7e59c51d5bbd7b18949e8dd (diff)
Save state a little less often during multi-file imports.
git-svn-id: svn://localhost/ardour2/branches/3.0@7863 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_audio_import.cc')
-rw-r--r--gtk2_ardour/editor_audio_import.cc36
1 files changed, 22 insertions, 14 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index fbf884c162..cd3c76a4ad 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -339,6 +339,8 @@ Editor::do_import (vector<string> paths, ImportDisposition chns, ImportMode mode
ImportProgressWindow ipw (&import_status, _("Import"), _("Cancel Import"));
+ bool ok = true;
+
if (chns == Editing::ImportMergeFiles) {
/* create 1 region from all paths, add to 1 track,
@@ -354,14 +356,15 @@ Editor::do_import (vector<string> paths, ImportDisposition chns, ImportMode mode
}
}
- if (!cancel) {
- import_sndfiles (paths, mode, quality, pos, 1, 1, track, false);
+ if (cancel) {
+ ok = false;
+ } else {
+ ok = (import_sndfiles (paths, mode, quality, pos, 1, 1, track, false) == 0);
}
} else {
bool replace = false;
- bool ok = true;
for (vector<string>::iterator a = paths.begin(); a != paths.end(); ++a) {
@@ -425,6 +428,10 @@ Editor::do_import (vector<string> paths, ImportDisposition chns, ImportMode mode
}
}
+ if (ok) {
+ _session->save_state ("");
+ }
+
import_status.all_done = true;
}
@@ -529,25 +536,26 @@ Editor::import_sndfiles (vector<string> paths, ImportMode mode, SrcQuality quali
import_status.done = true;
+ int result = -1;
+
if (!import_status.cancel && !import_status.sources.empty()) {
- if (add_sources (import_status.paths,
- import_status.sources,
- import_status.pos,
- import_status.mode,
- import_status.target_regions,
- import_status.target_tracks,
- track, false) == 0) {
- _session->save_state ("");
- }
+ result = add_sources (
+ import_status.paths,
+ import_status.sources,
+ import_status.pos,
+ import_status.mode,
+ import_status.target_regions,
+ import_status.target_tracks,
+ track, false
+ );
/* update position from results */
pos = import_status.pos;
}
-
set_canvas_cursor (current_canvas_cursor);
- return 0;
+ return result;
}
int