summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-06-25 12:47:29 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-06-29 14:18:16 -0400
commit5c8e239f95138d2a0fa989da7ccbf77a7716fdf4 (patch)
tree733da19c7a48e56e6aead32a7a37c2ffbfc7e305 /gtk2_ardour
parentb531c878b0bd85f0fe98f0b37659f66c41e8eb0b (diff)
Revert "start work on auto return target dropdown rather than button"
This reverts commit d1cbb3fb0e36b068dbf516d21891c998266f22a2.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc47
-rw-r--r--gtk2_ardour/ardour_ui.h13
-rw-r--r--gtk2_ardour/ardour_ui2.cc20
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc2
-rw-r--r--gtk2_ardour/ardour_ui_options.cc6
5 files changed, 26 insertions, 62 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index f3483769d8..0d646c8add 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -205,6 +205,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir, UIConfi
, auto_loop_controllable (new TransportControllable ("transport auto loop", *this, TransportControllable::AutoLoop))
, play_selection_controllable (new TransportControllable ("transport play selection", *this, TransportControllable::PlaySelection))
, rec_controllable (new TransportControllable ("transport rec-enable", *this, TransportControllable::RecordEnable))
+ , auto_return_button (ArdourButton::led_default_elements)
, follow_edits_button (ArdourButton::led_default_elements)
, auto_input_button (ArdourButton::led_default_elements)
, auditioning_alert_button (_("Audition"))
@@ -4788,16 +4789,16 @@ ARDOUR_UI::transport_numpad_event (int num)
_pending_locate_num = _pending_locate_num*10 + num;
} else {
switch (num) {
- case 0: toggle_roll(false, false); break;
- case 1: transport_rewind(1); break;
- case 2: transport_forward(1); break;
- case 3: transport_record(true); break;
- case 4: toggle_session_auto_loop(); break;
- case 5: transport_record(false); toggle_session_auto_loop(); break;
- case 6: toggle_punch(); break;
- case 7: toggle_click(); break;
- case 8: toggle_all_auto_return (); break;
- case 9: toggle_follow_edits(); break;
+ case 0: toggle_roll(false, false); break;
+ case 1: transport_rewind(1); break;
+ case 2: transport_forward(1); break;
+ case 3: transport_record(true); break;
+ case 4: toggle_session_auto_loop(); break;
+ case 5: transport_record(false); toggle_session_auto_loop(); break;
+ case 6: toggle_punch(); break;
+ case 7: toggle_click(); break;
+ case 8: toggle_auto_return(); break;
+ case 9: toggle_follow_edits(); break;
}
}
}
@@ -4870,29 +4871,3 @@ ARDOUR_UI::hide_application ()
{
Application::instance ()-> hide ();
}
-
-void
-ARDOUR_UI::toggle_auto_return_state (AutoReturnTarget t)
-{
- AutoReturnTarget art = Config->get_auto_return_target_list ();
- if (art & t) {
- Config->set_auto_return_target_list (AutoReturnTarget (art & ~t));
- } else {
- Config->set_auto_return_target_list (AutoReturnTarget (art | t));
- }
-}
-
-void
-ARDOUR_UI::toggle_all_auto_return ()
-{
- AutoReturnTarget art = Config->get_auto_return_target_list ();
- if (art) {
- Config->set_auto_return_target_list (AutoReturnTarget (0));
- } else {
- Config->set_auto_return_target_list (AutoReturnTarget (LastLocate|
- RangeSelectionStart|
- RegionSelectionStart|
- Loop));
- }
-}
-
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 004104ea0d..b6ec8a8799 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -70,7 +70,6 @@
#include "about.h"
#include "ardour_button.h"
#include "ardour_dialog.h"
-#include "ardour_dropdown.h"
#include "ardour_window.h"
#include "editing.h"
#include "engine_dialog.h"
@@ -323,6 +322,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
void toggle_punch_out ();
void show_loop_punch_ruler_and_disallow_hide ();
void reenable_hide_loop_punch_ruler_if_appropriate ();
+ void toggle_auto_return ();
void toggle_click ();
void toggle_audio_midi_setup ();
void toggle_session_auto_loop ();
@@ -453,16 +453,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
ShuttleControl* shuttle_box;
- ArdourDropdown auto_return_dropdown;
- Gtk::CheckMenuItem *auto_return_last_locate;
- Gtk::CheckMenuItem *auto_return_range_selection;
- Gtk::CheckMenuItem *auto_return_region_selection;
- Gtk::CheckMenuItem *auto_return_loop;
- Gtk::MenuItem *auto_return_toggle;
-
- void toggle_auto_return_state (ARDOUR::AutoReturnTarget);
- void toggle_all_auto_return ();
-
+ ArdourButton auto_return_button;
ArdourButton follow_edits_button;
ArdourButton auto_input_button;
ArdourButton click_button;
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index db53080e5c..c7fb167b7c 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -133,6 +133,7 @@ ARDOUR_UI::setup_tooltips ()
set_tip (goto_end_button, _("Go to end of session"));
set_tip (auto_loop_button, _("Play loop range"));
set_tip (midi_panic_button, _("MIDI Panic\nSend note off and reset controller messages on all MIDI channels"));
+ set_tip (auto_return_button, _("Return to last playback start when stopped"));
set_tip (follow_edits_button, _("Playhead follows Range Selections and Edits"));
set_tip (auto_input_button, _("Be sensible about input monitoring"));
set_tip (click_button, _("Enable/Disable audio click"));
@@ -251,19 +252,7 @@ ARDOUR_UI::setup_transport ()
transport_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::reattach_tearoff), static_cast<Box*> (&top_packer),
static_cast<Widget*> (&transport_frame), 1));
- /* build auto-return dropdown */
-
- auto_return_dropdown.set_text (_("Auto Return"));
-
- auto_return_last_locate = manage (new CheckMenuItem (_("Play from last roll")));
- auto_return_last_locate->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_auto_return_state), LastLocate));
- auto_return_last_locate->show ();
- auto_return_dropdown.AddMenuElem (Gtk::Menu_Helpers::CheckMenuElem (*auto_return_last_locate));
-
- auto_return_region_selection = manage (new CheckMenuItem (_("Play from region selection")));
- auto_return_region_selection->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_auto_return_state), RegionSelectionStart));
- auto_return_region_selection->show ();
- auto_return_dropdown.AddMenuElem (Gtk::Menu_Helpers::CheckMenuElem (*auto_return_region_selection));
+ auto_return_button.set_text(_("Auto Return"));
follow_edits_button.set_text(_("Follow Edits"));
@@ -275,6 +264,7 @@ ARDOUR_UI::setup_transport ()
click_button.set_related_action (act);
click_button.signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::click_button_clicked), false);
+ auto_return_button.set_name ("transport option button");
follow_edits_button.set_name ("transport option button");
auto_input_button.set_name ("transport option button");
@@ -322,6 +312,8 @@ ARDOUR_UI::setup_transport ()
secondary_clock->ValueChanged.connect (sigc::mem_fun(*this, &ARDOUR_UI::secondary_clock_value_changed));
big_clock->ValueChanged.connect (sigc::mem_fun(*this, &ARDOUR_UI::big_clock_value_changed));
+ act = ActionManager::get_action ("Transport", "ToggleAutoReturn");
+ auto_return_button.set_related_action (act);
act = ActionManager::get_action (X_("Transport"), X_("ToggleFollowEdits"));
follow_edits_button.set_related_action (act);
act = ActionManager::get_action ("Transport", "ToggleAutoInput");
@@ -446,7 +438,7 @@ ARDOUR_UI::setup_transport ()
auto_box->pack_start (sync_button, true, true);
if (!ARDOUR::Profile->get_trx()) {
auto_box->pack_start (follow_edits_button, true, true);
- auto_box->pack_start (auto_return_dropdown, true, true);
+ auto_box->pack_start (auto_return_button, true, true);
}
if (!ARDOUR::Profile->get_trx()) {
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc
index 4f6cd6a669..4455e72832 100644
--- a/gtk2_ardour/ardour_ui_ed.cc
+++ b/gtk2_ardour/ardour_ui_ed.cc
@@ -405,7 +405,7 @@ if (Profile->get_mixbus())
act = ActionManager::register_toggle_action (transport_actions, X_("ToggleAutoPlay"), _("Auto Play"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_auto_play));
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::transport_sensitive_actions.push_back (act);
- act = ActionManager::register_toggle_action (transport_actions, X_("ToggleAutoReturn"), _("Auto Return"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_all_auto_return));
+ act = ActionManager::register_toggle_action (transport_actions, X_("ToggleAutoReturn"), _("Auto Return"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_auto_return));
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::transport_sensitive_actions.push_back (act);
act = ActionManager::register_toggle_action (transport_actions, X_("ToggleFollowEdits"), _("Follow Edits"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_follow_edits));
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index 52f289b3f2..0c59a66213 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -131,6 +131,12 @@ ARDOUR_UI::toggle_auto_play ()
}
void
+ARDOUR_UI::toggle_auto_return ()
+{
+ ActionManager::toggle_config_state_foo ("Transport", "ToggleAutoReturn", sigc::mem_fun (_session->config, &SessionConfiguration::set_auto_return), sigc::mem_fun (_session->config, &SessionConfiguration::get_auto_return));
+}
+
+void
ARDOUR_UI::toggle_click ()
{
ActionManager::toggle_config_state ("Transport", "ToggleClick", &RCConfiguration::set_clicking, &RCConfiguration::get_clicking);