From: Robin Gareus Date: Mon, 7 Dec 2015 23:28:45 +0000 (+0100) Subject: a shot in the dark to work-around windows file-import limit. X-Git-Tag: 4.5~268 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=f50a87e408ac2fd1c9fc010da798ea8d153e7e31;p=ardour.git 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. --- 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 (); + } } diff --git a/gtk2_ardour/sfdb_ui.h b/gtk2_ardour/sfdb_ui.h index 3c4f088258..fcdce2a140 100644 --- a/gtk2_ardour/sfdb_ui.h +++ b/gtk2_ardour/sfdb_ui.h @@ -321,6 +321,9 @@ class SoundFileOmega : public SoundFileBrowser void where_combo_changed (); void do_something (int action); + + bool _import_active; + bool _reset_post_import; }; #endif // __ardour_sfdb_ui_h__