a shot in the dark to work-around windows file-import limit.
authorRobin Gareus <robin@gareus.org>
Mon, 7 Dec 2015 23:28:45 +0000 (00:28 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 7 Dec 2015 23:29:19 +0000 (00:29 +0100)
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
gtk2_ardour/sfdb_ui.h

index f7be171081d9fcb084a35e36fe050e6003ae2f80..4c96172f1625526ce2f6cb061c42c202406aed9c 100644 (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 ();
+       }
 }
 
index 3c4f088258d4f798c181f648c70c19f974783944..fcdce2a140aff2c84bcc4f95255243b683e9c884 100644 (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__