Add Sort-by dropdown, re-layout import dialog
This commit is contained in:
parent
f174c3a1a1
commit
8d68fb1ac3
|
@ -1510,9 +1510,13 @@ SoundFileOmega::reset_options ()
|
||||||
|
|
||||||
channel_combo.set_sensitive (false);
|
channel_combo.set_sensitive (false);
|
||||||
action_combo.set_sensitive (false);
|
action_combo.set_sensitive (false);
|
||||||
|
sort_combo.set_sensitive (false);
|
||||||
where_combo.set_sensitive (false);
|
where_combo.set_sensitive (false);
|
||||||
copy_files_btn.set_active (true);
|
copy_files_btn.set_active (true);
|
||||||
copy_files_btn.set_sensitive (false);
|
copy_files_btn.set_sensitive (false);
|
||||||
|
midi_track_name_combo.set_sensitive (false);
|
||||||
|
smf_tempo_btn.set_sensitive (false);
|
||||||
|
smf_marker_btn.set_sensitive (false);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -1521,6 +1525,7 @@ SoundFileOmega::reset_options ()
|
||||||
channel_combo.set_sensitive (true);
|
channel_combo.set_sensitive (true);
|
||||||
action_combo.set_sensitive (true);
|
action_combo.set_sensitive (true);
|
||||||
where_combo.set_sensitive (true);
|
where_combo.set_sensitive (true);
|
||||||
|
sort_combo.set_sensitive (paths.size () > 1 && (ImportAsTrack == get_mode () || ImportAsTrigger == get_mode ()));
|
||||||
|
|
||||||
/* if we get through this function successfully, this may be
|
/* if we get through this function successfully, this may be
|
||||||
reset at the end, once we know if we can use hard links
|
reset at the end, once we know if we can use hard links
|
||||||
|
@ -1549,11 +1554,9 @@ SoundFileOmega::reset_options ()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (have_a_midi_file) {
|
midi_track_name_combo.set_sensitive (have_a_midi_file);
|
||||||
smf_tempo_btn.show ();
|
smf_tempo_btn.set_sensitive (have_a_midi_file);
|
||||||
} else {
|
smf_marker_btn.set_sensitive (have_a_midi_file);
|
||||||
smf_tempo_btn.hide ();
|
|
||||||
}
|
|
||||||
|
|
||||||
string existing_choice;
|
string existing_choice;
|
||||||
vector<string> action_strings;
|
vector<string> action_strings;
|
||||||
|
@ -1851,8 +1854,8 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||||
: SoundFileBrowser (title, s, persistent)
|
: SoundFileBrowser (title, s, persistent)
|
||||||
, instrument_combo (InstrumentSelector::ForTrackSelector)
|
, instrument_combo (InstrumentSelector::ForTrackSelector)
|
||||||
, copy_files_btn ( _("Copy files to session"))
|
, copy_files_btn ( _("Copy files to session"))
|
||||||
, smf_tempo_btn (_("Use MIDI Tempo Map (if defined)"))
|
, smf_tempo_btn (_("Use MIDI Tempo Map"))
|
||||||
, smf_marker_btn (_("Import MIDI markers (if any)"))
|
, smf_marker_btn (_("Import MIDI markers"))
|
||||||
, selected_audio_track_cnt (selected_audio_tracks)
|
, selected_audio_track_cnt (selected_audio_tracks)
|
||||||
, selected_midi_track_cnt (selected_midi_tracks)
|
, selected_midi_track_cnt (selected_midi_tracks)
|
||||||
, _import_active (false)
|
, _import_active (false)
|
||||||
|
@ -1862,10 +1865,6 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||||
|
|
||||||
set_size_request (-1, 550);
|
set_size_request (-1, 550);
|
||||||
|
|
||||||
block_two.set_border_width (12);
|
|
||||||
block_three.set_border_width (12);
|
|
||||||
block_four.set_border_width (12);
|
|
||||||
|
|
||||||
str.clear ();
|
str.clear ();
|
||||||
str.push_back (_("file timestamp"));
|
str.push_back (_("file timestamp"));
|
||||||
str.push_back (_("edit point"));
|
str.push_back (_("edit point"));
|
||||||
|
@ -1885,39 +1884,44 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||||
|
|
||||||
l = manage (new Label);
|
l = manage (new Label);
|
||||||
l->set_markup (_("<b>Insert at</b>"));
|
l->set_markup (_("<b>Insert at</b>"));
|
||||||
options.attach (*l, 0, 1, 3, 4, FILL, SHRINK, 8, 0);
|
options.attach (*l, 0, 1, 2, 3, FILL, SHRINK, 8, 0);
|
||||||
options.attach (where_combo, 0, 1, 4, 5, FILL, SHRINK, 8, 0);
|
options.attach (where_combo, 0, 1, 3, 4, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
l = manage (new Label);
|
l = manage (new Label);
|
||||||
l->set_markup (_("<b>Mapping</b>"));
|
l->set_markup (_("<b>Mapping</b>"));
|
||||||
|
options.attach (*l, 0, 1, 4, 5, FILL, SHRINK, 8, 0);
|
||||||
|
options.attach (channel_combo, 0, 1, 5, 6, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
|
/* 2nd col */
|
||||||
|
l = manage (new Label);
|
||||||
|
l->set_markup (_("<b>Sort order</b>"));
|
||||||
options.attach (*l, 1, 2, 0, 1, FILL, SHRINK, 8, 0);
|
options.attach (*l, 1, 2, 0, 1, FILL, SHRINK, 8, 0);
|
||||||
options.attach (channel_combo, 1, 2, 1, 2, FILL, SHRINK, 8, 0);
|
options.attach (sort_combo, 1, 2, 1, 2, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
l = manage (new Label);
|
l = manage (new Label);
|
||||||
l->set_markup (_("<b>Conversion quality</b>"));
|
l->set_markup (_("<b>Conversion quality</b>"));
|
||||||
options.attach (*l, 1, 2, 3, 4, FILL, SHRINK, 8, 0);
|
options.attach (*l, 1, 2, 2, 3, FILL, SHRINK, 8, 0);
|
||||||
options.attach (src_combo, 1, 2, 4, 5, FILL, SHRINK, 8, 0);
|
options.attach (src_combo, 1, 2, 3, 4, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
|
options.attach (copy_files_btn, 1, 2, 5, 6, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
|
/* 3rd, 4th col: MIDI */
|
||||||
|
l = manage (new Label);
|
||||||
|
l->set_markup (_("<b>Instrument</b>"));
|
||||||
|
options.attach (*l, 2, 4, 0, 1, FILL, SHRINK, 8, 0);
|
||||||
|
options.attach (instrument_combo, 2, 4, 1, 2, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
l = manage (new Label);
|
l = manage (new Label);
|
||||||
l->set_markup (_("<b>MIDI Track Names</b>"));
|
l->set_markup (_("<b>MIDI Track Names</b>"));
|
||||||
options.attach (*l, 2, 3, 0, 1, FILL, SHRINK, 8, 0);
|
options.attach (*l, 2, 4, 2, 3, FILL, SHRINK, 8, 0);
|
||||||
options.attach (midi_track_name_combo, 2, 3, 1, 2, FILL, SHRINK, 8, 0);
|
options.attach (midi_track_name_combo, 2, 4, 3, 4, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
options.attach (smf_tempo_btn, 2, 3, 3, 4, FILL, SHRINK, 8, 0);
|
options.attach (smf_tempo_btn, 2, 3, 5, 6, FILL, SHRINK, 8, 0);
|
||||||
options.attach (smf_marker_btn, 2, 3, 4, 5, FILL, SHRINK, 8, 0);
|
options.attach (smf_marker_btn, 3, 4, 5, 6, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
l = manage (new Label);
|
|
||||||
l->set_markup (_("<b>Instrument</b>"));
|
|
||||||
options.attach (*l, 3, 4, 0, 1, FILL, SHRINK, 8, 0);
|
|
||||||
options.attach (instrument_combo, 3, 4, 1, 2, FILL, SHRINK, 8, 0);
|
|
||||||
|
|
||||||
Alignment *hspace = manage (new Alignment ());
|
|
||||||
hspace->set_size_request (2, 2);
|
|
||||||
options.attach (*hspace, 0, 3, 2, 3, FILL, SHRINK, 0, 8);
|
|
||||||
|
|
||||||
Alignment *vspace = manage (new Alignment ());
|
Alignment *vspace = manage (new Alignment ());
|
||||||
vspace->set_size_request (2, 2);
|
vspace->set_size_request (2, 2);
|
||||||
options.attach (*vspace, 2, 3, 0, 3, EXPAND, SHRINK, 0, 0);
|
options.attach (*vspace, 0, 4, 6, 7, EXPAND, SHRINK, 0, 0);
|
||||||
|
|
||||||
str.clear ();
|
str.clear ();
|
||||||
str.push_back (_("by track number"));
|
str.push_back (_("by track number"));
|
||||||
|
@ -1944,21 +1948,19 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||||
src_combo.set_sensitive (false);
|
src_combo.set_sensitive (false);
|
||||||
src_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::src_combo_changed));
|
src_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::src_combo_changed));
|
||||||
|
|
||||||
|
str.clear ();
|
||||||
|
str.push_back (_("by file name"));
|
||||||
|
str.push_back (_("by modification time"));
|
||||||
|
str.push_back (_("by selection order"));
|
||||||
|
set_popdown_strings (sort_combo, str);
|
||||||
|
sort_combo.set_active_text (str.front());
|
||||||
|
sort_combo.set_sensitive (false);
|
||||||
|
|
||||||
action_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::reset_options_noret));
|
action_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::reset_options_noret));
|
||||||
channel_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::reset_options_noret));
|
channel_combo.signal_changed().connect (sigc::mem_fun (*this, &SoundFileOmega::reset_options_noret));
|
||||||
|
|
||||||
copy_files_btn.set_active (true);
|
copy_files_btn.set_active (true);
|
||||||
|
|
||||||
Gtk::Label* copy_label = dynamic_cast<Gtk::Label*>(copy_files_btn.get_child());
|
|
||||||
|
|
||||||
if (copy_label) {
|
|
||||||
copy_label->set_size_request (175, -1);
|
|
||||||
copy_label->set_line_wrap (true);
|
|
||||||
}
|
|
||||||
|
|
||||||
block_four.pack_start (copy_files_btn, false, false);
|
|
||||||
options.attach (block_four, 3, 4, 4, 5, FILL, SHRINK, 8, 0);
|
|
||||||
|
|
||||||
vpacker.pack_start (options, false, true);
|
vpacker.pack_start (options, false, true);
|
||||||
|
|
||||||
/* setup disposition map */
|
/* setup disposition map */
|
||||||
|
@ -2009,6 +2011,21 @@ SoundFileOmega::get_mode () const
|
||||||
return string2importmode (action_combo.get_active_text());
|
return string2importmode (action_combo.get_active_text());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SoundFileBrowser::SortOrder
|
||||||
|
SoundFileOmega::sort_order () const
|
||||||
|
{
|
||||||
|
std::string const& str (sort_combo.get_active_text());
|
||||||
|
if (str == _("by file name")) {
|
||||||
|
return SoundFileBrowser::FileName;
|
||||||
|
} else if (str == _("by modification time")) {
|
||||||
|
return SoundFileBrowser::FileMtime;
|
||||||
|
} else if (str == _("by selection order")) {
|
||||||
|
return SoundFileBrowser::SelectionOrder;
|
||||||
|
}
|
||||||
|
warning << string_compose (_("programming error: unknown import sort string %1"), str) << endmsg;
|
||||||
|
return SelectionOrder;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SoundFileOmega::on_hide ()
|
SoundFileOmega::on_hide ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -309,6 +309,7 @@ public:
|
||||||
void reset (uint32_t selected_audio_tracks, uint32_t selected_midi_tracks);
|
void reset (uint32_t selected_audio_tracks, uint32_t selected_midi_tracks);
|
||||||
|
|
||||||
Gtk::ComboBoxText action_combo;
|
Gtk::ComboBoxText action_combo;
|
||||||
|
Gtk::ComboBoxText sort_combo;
|
||||||
Gtk::ComboBoxText where_combo;
|
Gtk::ComboBoxText where_combo;
|
||||||
Gtk::ComboBoxText channel_combo;
|
Gtk::ComboBoxText channel_combo;
|
||||||
Gtk::ComboBoxText src_combo;
|
Gtk::ComboBoxText src_combo;
|
||||||
|
@ -330,6 +331,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void on_hide();
|
void on_hide();
|
||||||
|
virtual SortOrder sort_order () const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint32_t selected_audio_track_cnt;
|
uint32_t selected_audio_track_cnt;
|
||||||
|
@ -339,9 +341,6 @@ private:
|
||||||
DispositionMap disposition_map;
|
DispositionMap disposition_map;
|
||||||
|
|
||||||
Gtk::Table options;
|
Gtk::Table options;
|
||||||
Gtk::VBox block_two;
|
|
||||||
Gtk::VBox block_three;
|
|
||||||
Gtk::VBox block_four;
|
|
||||||
|
|
||||||
bool check_info (const std::vector<std::string>& paths,
|
bool check_info (const std::vector<std::string>& paths,
|
||||||
bool& same_size, bool& src_needed, bool& multichannel, bool& must_copy);
|
bool& same_size, bool& src_needed, bool& multichannel, bool& must_copy);
|
||||||
|
|
Loading…
Reference in New Issue