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.
This commit is contained in:
Robin Gareus 2015-12-08 00:28:45 +01:00
parent 5f7ae1294e
commit f50a87e408
2 changed files with 19 additions and 0 deletions

View File

@ -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 ();
}
}

View File

@ -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__