summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_options.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-01-18 12:25:02 +0100
committerRobin Gareus <robin@gareus.org>2017-01-18 12:25:02 +0100
commitcf31233cd1503f7f3818c6bbeb6f5bd427144f80 (patch)
tree2407cc6496ce47a5d7cfadce86db089c9590915b /gtk2_ardour/ardour_ui_options.cc
parent48da03e301c8145f9568df0692001652ea31b796 (diff)
Cleanup global monitor options:
- rely on parameter-changed signal emission to update buttons - use dedicated button/style names - improve tooltip
Diffstat (limited to 'gtk2_ardour/ardour_ui_options.cc')
-rw-r--r--gtk2_ardour/ardour_ui_options.cc39
1 files changed, 17 insertions, 22 deletions
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index 0c31bf4de1..a2853ff5cd 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -132,9 +132,6 @@ ARDOUR_UI::toggle_click ()
void
ARDOUR_UI::toggle_session_monitoring_in ()
{
- if (ignore_session_monitoring) {
- return;
- }
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
if (!act) {
return;
@@ -143,15 +140,15 @@ ARDOUR_UI::toggle_session_monitoring_in ()
if (!tact) {
return;
}
+
+ if (tact->get_active() && _session->config.get_session_monitoring () == MonitorInput) {
+ return;
+ }
+ if (!tact->get_active() && _session->config.get_session_monitoring () != MonitorInput) {
+ return;
+ }
+
if (tact->get_active()) {
- Glib::RefPtr<Action> dact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
- if (dact) {
- Glib::RefPtr<ToggleAction> tdact = Glib::RefPtr<ToggleAction>::cast_dynamic(dact);
- if (tdact) {
- PBD::Unwinder<bool> (ignore_session_monitoring, true);
- tdact->set_active (false);
- }
- }
_session->config.set_session_monitoring (MonitorInput);
} else {
_session->config.set_session_monitoring (MonitorAuto);
@@ -161,9 +158,6 @@ ARDOUR_UI::toggle_session_monitoring_in ()
void
ARDOUR_UI::toggle_session_monitoring_disk ()
{
- if (ignore_session_monitoring) {
- return;
- }
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
if (!act) {
return;
@@ -172,15 +166,14 @@ ARDOUR_UI::toggle_session_monitoring_disk ()
if (!tact) {
return;
}
+ if (tact->get_active() && _session->config.get_session_monitoring () == MonitorDisk) {
+ return;
+ }
+ if (!tact->get_active() && _session->config.get_session_monitoring () != MonitorDisk) {
+ return;
+ }
+
if (tact->get_active()) {
- Glib::RefPtr<Action> iact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
- if (iact) {
- Glib::RefPtr<ToggleAction> tiact = Glib::RefPtr<ToggleAction>::cast_dynamic(iact);
- if (tiact) {
- PBD::Unwinder<bool> (ignore_session_monitoring, true);
- tiact->set_active (false);
- }
- }
_session->config.set_session_monitoring (MonitorDisk);
} else {
_session->config.set_session_monitoring (MonitorAuto);
@@ -409,9 +402,11 @@ ARDOUR_UI::parameter_changed (std::string p)
switch (_session->config.get_session_monitoring ()) {
case MonitorDisk:
tdact->set_active (true);
+ tiact->set_active (false);
break;
case MonitorInput:
tiact->set_active (true);
+ tdact->set_active (false);
break;
default:
tdact->set_active (false);