+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;
+ }
+
+ // 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
+ExportFilenameSelector::change_timespan_selection ()
+{
+ if (!filename) {
+ return;
+ }
+ if (timespan_checkbox.get_inconsistent()) {
+ return;
+ }
+
+ filename->include_timespan = timespan_checkbox.get_active();
+ CriticalSelectionChanged();
+}
+