+ ArdourDialog::on_hide();
+ stop_metering ();
+
+ if (_session) {
+ _session->cancel_audition();
+ }
+}
+
+ustring
+SoundFileChooser::get_filename ()
+{
+ vector<ustring> paths;
+
+ paths = get_paths ();
+
+ if (paths.empty()) {
+ return ustring ();
+ }
+
+ if (!Glib::file_test (paths.front(), Glib::FILE_TEST_EXISTS|Glib::FILE_TEST_IS_REGULAR)) {
+ return ustring();
+ }
+
+ return paths.front();
+}
+
+SoundFileOmega::SoundFileOmega (Gtk::Window& parent, string title, ARDOUR::Session* s, int selected_tracks, bool persistent,
+ Editing::ImportMode mode_hint)
+ : SoundFileBrowser (parent, title, s, persistent),
+ copy_files_btn ( _("Copy files to session")),
+ selected_track_cnt (selected_tracks)
+{
+ VBox* vbox;
+ HBox* hbox;
+ vector<string> str;
+
+ set_size_request (-1, 450);
+
+ block_two.set_border_width (12);
+ block_three.set_border_width (12);
+ block_four.set_border_width (12);
+
+ options.set_spacing (12);
+
+ str.clear ();
+ str.push_back (_("file timestamp"));
+ str.push_back (_("edit point"));
+ str.push_back (_("playhead"));
+ str.push_back (_("session start"));
+ set_popdown_strings (where_combo, str);
+ where_combo.set_active_text (str.front());
+
+ Label* l = manage (new Label);
+ l->set_text (_("Add files:"));
+
+ hbox = manage (new HBox);
+ hbox->set_border_width (12);
+ hbox->set_spacing (6);
+ hbox->pack_start (*l, false, false);
+ hbox->pack_start (action_combo, false, false);
+ vbox = manage (new VBox);
+ vbox->pack_start (*hbox, false, false);
+ options.pack_start (*vbox, false, false);
+
+ /* dummy entry for action combo so that it doesn't look odd if we
+ come up with no tracks selected.
+ */
+
+ str.clear ();
+ str.push_back (importmode2string (mode_hint));
+ set_popdown_strings (action_combo, str);
+ action_combo.set_active_text (str.front());
+ action_combo.set_sensitive (false);
+
+ l = manage (new Label);
+ l->set_text (_("Insert at:"));
+
+ hbox = manage (new HBox);
+ hbox->set_border_width (12);
+ hbox->set_spacing (6);
+ hbox->pack_start (*l, false, false);
+ hbox->pack_start (where_combo, false, false);
+ vbox = manage (new VBox);
+ vbox->pack_start (*hbox, false, false);
+ options.pack_start (*vbox, false, false);
+
+
+ l = manage (new Label);
+ l->set_text (_("Mapping:"));
+
+ hbox = manage (new HBox);
+ hbox->set_border_width (12);
+ hbox->set_spacing (6);
+ hbox->pack_start (*l, false, false);
+ hbox->pack_start (channel_combo, false, false);
+ vbox = manage (new VBox);
+ vbox->pack_start (*hbox, false, false);
+ options.pack_start (*vbox, false, false);
+
+ str.clear ();
+ str.push_back (_("one track per file"));
+ set_popdown_strings (channel_combo, str);
+ channel_combo.set_active_text (str.front());
+ channel_combo.set_sensitive (false);
+
+ l = manage (new Label);
+ l->set_text (_("Conversion quality:"));
+
+ hbox = manage (new HBox);
+ hbox->set_border_width (12);
+ hbox->set_spacing (6);
+ hbox->pack_start (*l, false, false);
+ hbox->pack_start (src_combo, false, false);
+ vbox = manage (new VBox);
+ vbox->pack_start (*hbox, false, false);
+ options.pack_start (*vbox, false, false);
+
+ str.clear ();
+ str.push_back (_("Best"));
+ str.push_back (_("Good"));
+ str.push_back (_("Quick"));
+ str.push_back (_("Fast"));
+ str.push_back (_("Fastest"));
+
+ set_popdown_strings (src_combo, str);
+ src_combo.set_active_text (str.front());
+ src_combo.set_sensitive (false);
+
+ reset_options ();
+
+ action_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::reset_options_noret));
+
+ copy_files_btn.set_active (true);
+
+ block_four.pack_start (copy_files_btn, false, false);
+
+ options.pack_start (block_four, false, false);
+
+ get_vbox()->pack_start (options, false, false);
+
+ /* setup disposition map */
+
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("one track per file"), ImportDistinctFiles));
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("one track per channel"), ImportDistinctChannels));
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("merge files"), ImportMergeFiles));
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("sequence files"), ImportSerializeFiles));
+
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("one region per file"), ImportDistinctFiles));
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("one region per channel"), ImportDistinctChannels));
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("all files in one region"), ImportMergeFiles));
+ disposition_map.insert (pair<ustring,ImportDisposition>(_("all files in one track"), ImportMergeFiles));
+
+ chooser.signal_selection_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::file_selection_changed));
+
+ /* set size requests for a couple of combos to allow them to display the longest text
+ they will ever be asked to display. This prevents them being resized when the user
+ selects a file to import, which in turn prevents the size of the dialog from jumping
+ around. */
+
+ vector<string> t;
+ t.push_back (_("one track per file"));
+ t.push_back (_("one track per channel"));
+ t.push_back (_("sequence files"));
+ t.push_back (_("all files in one region"));
+ set_size_request_to_display_given_text (channel_combo, t, COMBO_FUDGE + 10, 15);
+
+ t.clear ();
+ t.push_back (importmode2string (ImportAsTrack));
+ t.push_back (importmode2string (ImportToTrack));
+ t.push_back (importmode2string (ImportAsRegion));
+ t.push_back (importmode2string (ImportAsTapeTrack));
+ set_size_request_to_display_given_text (action_combo, t, COMBO_FUDGE + 10, 15);