summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_timespan_selector.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-03-06 03:19:50 +0100
committerRobin Gareus <robin@gareus.org>2020-03-06 03:29:23 +0100
commitaa6fd4339e3e3edc4d58fcd77d1e5488d5ebb1dc (patch)
treeac90460580ebc3b5c03f4f0cb790a15da973a540 /gtk2_ardour/export_timespan_selector.cc
parentd126966952f88065d0426c289b64d755930e6b82 (diff)
Fix realtime export checkbox consistency
Diffstat (limited to 'gtk2_ardour/export_timespan_selector.cc')
-rw-r--r--gtk2_ardour/export_timespan_selector.cc24
1 files changed, 21 insertions, 3 deletions
diff --git a/gtk2_ardour/export_timespan_selector.cc b/gtk2_ardour/export_timespan_selector.cc
index 0f4bcd170c..bbd426f694 100644
--- a/gtk2_ardour/export_timespan_selector.cc
+++ b/gtk2_ardour/export_timespan_selector.cc
@@ -45,7 +45,7 @@ using std::string;
ExportTimespanSelector::ExportTimespanSelector (ARDOUR::Session * session, ProfileManagerPtr manager, bool multi)
: manager (manager)
- , _realtime_available (true)
+ , _realtime_available (false)
, time_format_label (_("Show Times as:"), Gtk::ALIGN_LEFT)
, realtime_checkbutton (_("Realtime Export"))
{
@@ -73,6 +73,7 @@ ExportTimespanSelector::ExportTimespanSelector (ARDOUR::Session * session, Profi
}
option_hbox.pack_start (realtime_checkbutton, false, false, 6);
realtime_checkbutton.set_active (session->config.get_realtime_export ());
+ realtime_checkbutton.set_sensitive (_realtime_available);
realtime_checkbutton.signal_toggled ().connect (
sigc::mem_fun (*this, &ExportTimespanSelector::toggle_realtime)
@@ -196,6 +197,7 @@ ExportTimespanSelector::allow_realtime_export (bool yn)
void
ExportTimespanSelector::toggle_realtime ()
{
+ printf ("ExportTimespanSelector::toggle_realtime\n");
const bool realtime = !_session->config.get_realtime_export ();
_session->config.set_realtime_export (realtime);
realtime_checkbutton.set_inconsistent (false);
@@ -487,14 +489,22 @@ ExportTimespanSelectorSingle::update_timespans ()
state->timespans->clear();
const bool realtime = _session->config.get_realtime_export ();
bool inconsistent = false;
+ bool rt_match = false;
for (Gtk::TreeStore::Children::iterator it = range_list->children().begin(); it != range_list->children().end(); ++it) {
add_range_to_selection (it->get_value (range_cols.location), it->get_value (range_cols.realtime) && _realtime_available);
if (it->get_value (range_cols.realtime) != realtime) {
inconsistent = true;
+ } else {
+ rt_match = true;
}
}
- realtime_checkbutton.set_inconsistent (inconsistent);
+ if (!rt_match) {
+ realtime_checkbutton.set_inconsistent (false);
+ realtime_checkbutton.set_active (!realtime);
+ } else {
+ realtime_checkbutton.set_inconsistent (inconsistent);
+ }
}
/*** ExportTimespanSelectorMultiple ***/
@@ -615,6 +625,7 @@ ExportTimespanSelectorMultiple::update_timespans ()
state->timespans->clear();
const bool realtime = _session->config.get_realtime_export ();
bool inconsistent = false;
+ bool rt_match = false;
for (Gtk::TreeStore::Children::iterator it = range_list->children().begin(); it != range_list->children().end(); ++it) {
if (it->get_value (range_cols.selected)) {
@@ -622,8 +633,15 @@ ExportTimespanSelectorMultiple::update_timespans ()
}
if (it->get_value (range_cols.realtime) != realtime) {
inconsistent = true;
+ } else {
+ rt_match = true;
}
}
- realtime_checkbutton.set_inconsistent (inconsistent);
+ if (!rt_match) {
+ realtime_checkbutton.set_inconsistent (false);
+ realtime_checkbutton.set_active (!realtime);
+ } else {
+ realtime_checkbutton.set_inconsistent (inconsistent);
+ }
}