diff options
author | Robin Gareus <robin@gareus.org> | 2016-02-11 20:53:32 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-02-11 20:58:05 +0100 |
commit | 8179efab256c75568aa77f3128b1311553575784 (patch) | |
tree | b10668a6e86118066b28e3d7066778597522e94f /gtk2_ardour/export_filename_selector.cc | |
parent | 2c2002ee9cae4fbfa1c72839cafc147506da5887 (diff) |
Allow removing the timespan name from the export-filename:
- if only one timespan is exported
and
- if at least one other name option is set.
Diffstat (limited to 'gtk2_ardour/export_filename_selector.cc')
-rw-r--r-- | gtk2_ardour/export_filename_selector.cc | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/gtk2_ardour/export_filename_selector.cc b/gtk2_ardour/export_filename_selector.cc index 2eb6540e81..a48ac6a4e0 100644 --- a/gtk2_ardour/export_filename_selector.cc +++ b/gtk2_ardour/export_filename_selector.cc @@ -31,12 +31,14 @@ ExportFilenameSelector::ExportFilenameSelector () : label_label (_("Label:"), Gtk::ALIGN_LEFT), session_checkbox (_("Session Name")), + timespan_checkbox (_("Timespan Name")), revision_checkbox (_("Revision:")), path_label (_("Folder:"), Gtk::ALIGN_LEFT), browse_button (_("Browse")), - example_filename_label ("", Gtk::ALIGN_LEFT) + example_filename_label ("", Gtk::ALIGN_LEFT), + _require_timespan (false) { include_label.set_markup (_("<i>Build filename(s) from these components:</i>")); @@ -45,13 +47,14 @@ ExportFilenameSelector::ExportFilenameSelector () : pack_start (include_hbox, false, false, 0); pack_start (example_filename_label, false, false, 12); + include_hbox.pack_start (session_checkbox, false, false, 3); + include_hbox.pack_start (timespan_checkbox, false, false, 3); include_hbox.pack_start (label_label, false, false, 3); include_hbox.pack_start (label_entry, false, false, 3); - include_hbox.pack_start (session_checkbox, false, false, 3); - include_hbox.pack_start (date_format_combo, false, false, 3); - include_hbox.pack_start (time_format_combo, false, false, 3); include_hbox.pack_start (revision_checkbox, false, false, 3); include_hbox.pack_start (revision_spinbutton, false, false, 3); + include_hbox.pack_start (date_format_combo, false, false, 3); + include_hbox.pack_start (time_format_combo, false, false, 3); label_entry.set_activates_default (); @@ -95,6 +98,7 @@ ExportFilenameSelector::ExportFilenameSelector () : path_entry.signal_activate().connect (sigc::mem_fun (*this, &ExportFilenameSelector::check_folder), false); session_checkbox.signal_toggled().connect (sigc::mem_fun (*this, &ExportFilenameSelector::change_session_selection)); + timespan_checkbox.signal_toggled().connect (sigc::mem_fun (*this, &ExportFilenameSelector::change_timespan_selection)); revision_checkbox.signal_toggled().connect (sigc::mem_fun (*this, &ExportFilenameSelector::change_revision_selection)); revision_spinbutton.signal_value_changed().connect (sigc::mem_fun (*this, &ExportFilenameSelector::change_revision_value)); @@ -116,6 +120,7 @@ ExportFilenameSelector::load_state () label_entry.set_text (filename->include_label ? filename->get_label() : ""); session_checkbox.set_active (filename->include_session); + timespan_checkbox.set_active (filename->include_timespan); revision_checkbox.set_active (filename->include_revision); revision_spinbutton.set_value (filename->get_revision()); path_entry.set_text (filename->get_folder()); @@ -277,6 +282,42 @@ ExportFilenameSelector::change_time_format () } void +ExportFilenameSelector::require_timespan (bool r) +{ + _require_timespan = r; + update_timespan_sensitivity (); +} + +void +ExportFilenameSelector::update_timespan_sensitivity () +{ + bool implicit = _require_timespan; + + if (!implicit + && !filename->include_session + && !filename->include_label + && !filename->include_revision + && !filename->include_channel_config + && !filename->include_channel + && !filename->include_date + && !filename->include_format_name) { + implicit = true; + } + timespan_checkbox.set_inconsistent (implicit); +} + +void +ExportFilenameSelector::change_timespan_selection () +{ + if (!filename) { + return; + } + + filename->include_timespan = timespan_checkbox.get_active(); + CriticalSelectionChanged(); +} + +void ExportFilenameSelector::change_session_selection () { if (!filename) { |