Enable Menu > Quit to work again after startup on macOS
[ardour.git] / gtk2_ardour / sfdb_ui.cc
index 850adb93a8d6cca49a7674fd83f422916d0fceae..940e7dd0350d830885e3164331d3e334a2029cca 100644 (file)
@@ -57,7 +57,7 @@
 
 #include <gtkmm2ext/utils.h>
 
-#include "evoral/SMF.hpp"
+#include "evoral/SMF.h"
 
 #include "ardour/audio_library.h"
 #include "ardour/auditioner.h"
@@ -122,7 +122,7 @@ string2importmode (string const & str)
                return ImportAsTrack;
        } else if (str == _("to selected tracks")) {
                return ImportToTrack;
-       } else if (str == _("to region list")) {
+       } else if (str == _("to source list")) {
                return ImportAsRegion;
        } else if (str == _("as new tape tracks")) {
                return ImportAsTapeTrack;
@@ -142,7 +142,7 @@ importmode2string (ImportMode mode)
        case ImportToTrack:
                return _("to selected tracks");
        case ImportAsRegion:
-               return _("to region list");
+               return _("to source list");
        case ImportAsTapeTrack:
                return _("as new tape tracks");
        }
@@ -1434,6 +1434,7 @@ SoundFileOmega::reset_options ()
 
        bool same_size;
        bool src_needed;
+       bool must_copy;
        bool selection_includes_multichannel;
        bool selection_can_be_embedded_with_links = check_link_status (_session, paths);
        ImportMode mode;
@@ -1445,7 +1446,7 @@ SoundFileOmega::reset_options ()
        }
        bool const have_a_midi_file = (i != paths.end ());
 
-       if (check_info (paths, same_size, src_needed, selection_includes_multichannel)) {
+       if (check_info (paths, same_size, src_needed, selection_includes_multichannel, must_copy)) {
                Glib::signal_idle().connect (sigc::mem_fun (*this, &SoundFileOmega::bad_file_message));
                return false;
        }
@@ -1606,7 +1607,7 @@ SoundFileOmega::reset_options ()
 
        /* We must copy MIDI files or those from Freesound
         * or any file if we are under nsm control */
-       bool const must_copy = _session->get_nsm_state() || have_a_midi_file || notebook.get_current_page() == 2;
+       must_copy |= _session->get_nsm_state() || have_a_midi_file || notebook.get_current_page() == 2;
 
        if (UIConfiguration::instance().get_only_copy_imported_files()) {
 
@@ -1648,7 +1649,7 @@ SoundFileOmega::bad_file_message()
 }
 
 bool
-SoundFileOmega::check_info (const vector<string>& paths, bool& same_size, bool& src_needed, bool& multichannel)
+SoundFileOmega::check_info (const vector<string>& paths, bool& same_size, bool& src_needed, bool& multichannel, bool& must_copy)
 {
        SoundFileInfo info;
        samplepos_t sz = 0;
@@ -1658,6 +1659,7 @@ SoundFileOmega::check_info (const vector<string>& paths, bool& same_size, bool&
        same_size = true;
        src_needed = false;
        multichannel = false;
+       must_copy = false;
 
        for (vector<string>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
 
@@ -1676,6 +1678,9 @@ SoundFileOmega::check_info (const vector<string>& paths, bool& same_size, bool&
                        if (info.samplerate != _session->sample_rate()) {
                                src_needed = true;
                        }
+                       if (!info.seekable) {
+                               must_copy = true;
+                       }
 
                } else if (SMFSource::valid_midi_file (*i)) {