diff options
author | Robin Gareus <robin@gareus.org> | 2015-12-08 00:28:45 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-12-08 00:29:19 +0100 |
commit | f50a87e408ac2fd1c9fc010da798ea8d153e7e31 (patch) | |
tree | c756d265fe5f4971f42cf3be1f433a31cd7d3906 /gtk2_ardour/sfdb_ui.cc | |
parent | 5f7ae1294ed4f622365bc6293f0a1465a404a5c9 (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.cc | 16 |
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 (); + } } |