refine export dialog Location:
authorRobin Gareus <robin@gareus.org>
Fri, 12 Feb 2016 19:19:31 +0000 (20:19 +0100)
committerRobin Gareus <robin@gareus.org>
Fri, 12 Feb 2016 19:19:31 +0000 (20:19 +0100)
* fix GUI logic for "Timespan" requirement
* change order to match filename.

gtk2_ardour/export_filename_selector.cc

index 1ecbc2cf1ebb87c9c0548d0f44f05186f929e596..fd411719252ff0a19cac9488c9164931580c3853 100644 (file)
@@ -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();