summaryrefslogtreecommitdiff
path: root/gtk2_ardour/sfdb_ui.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-12-08 00:28:45 +0100
committerRobin Gareus <robin@gareus.org>2015-12-08 00:29:19 +0100
commitf50a87e408ac2fd1c9fc010da798ea8d153e7e31 (patch)
treec756d265fe5f4971f42cf3be1f433a31cd7d3906 /gtk2_ardour/sfdb_ui.cc
parent5f7ae1294ed4f622365bc6293f0a1465a404a5c9 (diff)
a shot in the dark to work-around windows file-import limit.
When importing to new tracks, newly created tracks are selected Editor::track_selection_changed() -> SoundFileOmega::reset() -> SoundFileOmega::reset_options() -> check_info() fails -> Glib::signal_idle() error message. it is unclear why check_info would fail in this case since it worked in the first place.. best guess: a concurrency issue opening the file.
Diffstat (limited to 'gtk2_ardour/sfdb_ui.cc')
-rw-r--r--gtk2_ardour/sfdb_ui.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index f7be171081..4c96172f16 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -1293,6 +1293,11 @@ SoundFileOmega::reset_options_noret ()
bool
SoundFileOmega::reset_options ()
{
+ if (_import_active) {
+ _reset_post_import = true;
+ return true;
+ }
+
vector<string> paths = get_paths ();
if (paths.empty()) {
@@ -1664,6 +1669,8 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
, copy_files_btn ( _("Copy files to session"))
, selected_audio_track_cnt (selected_audio_tracks)
, selected_midi_track_cnt (selected_midi_tracks)
+ , _import_active (false)
+ , _reset_post_import (false)
{
VBox* vbox;
HBox* hbox;
@@ -1977,10 +1984,19 @@ SoundFileOmega::do_something (int action)
SrcQuality quality = get_src_quality();
+ _import_active = true;
+
if (copy_files_btn.get_active()) {
PublicEditor::instance().do_import (paths, chns, mode, quality, where, instrument);
} else {
PublicEditor::instance().do_embed (paths, chns, mode, where, instrument);
}
+
+ _import_active = false;
+
+ if (_reset_post_import) {
+ _reset_post_import = false;
+ reset_options ();
+ }
}