From c905a98a1a344cafdb7907196edcb96000d8826e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 12 Feb 2016 20:19:31 +0100 Subject: [PATCH] refine export dialog Location: * fix GUI logic for "Timespan" requirement * change order to match filename. --- gtk2_ardour/export_filename_selector.cc | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/export_filename_selector.cc b/gtk2_ardour/export_filename_selector.cc index 1ecbc2cf1e..fd41171925 100644 --- a/gtk2_ardour/export_filename_selector.cc +++ b/gtk2_ardour/export_filename_selector.cc @@ -48,11 +48,11 @@ ExportFilenameSelector::ExportFilenameSelector () : 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 (revision_checkbox, false, false, 3); include_hbox.pack_start (revision_spinbutton, false, false, 3); + include_hbox.pack_start (timespan_checkbox, false, false, 3); include_hbox.pack_start (date_format_combo, false, false, 3); include_hbox.pack_start (time_format_combo, false, false, 3); @@ -303,7 +303,17 @@ ExportFilenameSelector::update_timespan_sensitivity () && !filename->include_format_name) { implicit = true; } - timespan_checkbox.set_inconsistent (implicit); + + // remember prev state, force enable if implicit active. + if (implicit && !timespan_checkbox.get_inconsistent()) { + timespan_checkbox.set_inconsistent (true); + filename->include_timespan = true; + } + else if (!implicit && timespan_checkbox.get_inconsistent()) { + filename->include_timespan = timespan_checkbox.get_active(); + timespan_checkbox.set_inconsistent (false); + } + } void @@ -312,6 +322,9 @@ ExportFilenameSelector::change_timespan_selection () if (!filename) { return; } + if (timespan_checkbox.get_inconsistent()) { + return; + } filename->include_timespan = timespan_checkbox.get_active(); CriticalSelectionChanged();