From f50a87e408ac2fd1c9fc010da798ea8d153e7e31 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 8 Dec 2015 00:28:45 +0100 Subject: 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. --- gtk2_ardour/sfdb_ui.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gtk2_ardour/sfdb_ui.cc') 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 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 (); + } } -- cgit v1.2.3