avoid doing needless duplicate work in Selection::add (TimeAxisView*)
[ardour.git] / gtk2_ardour / ardour_ui_ed.cc
index 4a02ec68166c8102c84b2f9a7c2623a5ef88a405..43db73360840c9700e48b4bbcdffc676a4fc87bc 100644 (file)
@@ -49,6 +49,7 @@
 #include "monitor_section.h"
 #include "engine_dialog.h"
 #include "editor.h"
+#include "editing.h"
 #include "actions.h"
 #include "meterbridge.h"
 #include "luawindow.h"
@@ -127,7 +128,7 @@ ARDOUR_UI::install_actions ()
        Glib::RefPtr<ActionGroup> main_menu_actions = global_actions.create_action_group (X_("Main_menu"));
        Glib::RefPtr<Action> act;
 
-       global_actions.register_action (main_actions, X_("Escape"), _("Escape"), sigc::mem_fun (*this, &ARDOUR_UI::escape));
+       global_actions.register_action (main_actions, X_("Escape"), _("Escape (deselect all)"), sigc::mem_fun (*this, &ARDOUR_UI::escape));
        /* This is hard-wired into the Keyboard code as "Primary-w". Maybe it
           doesn't need to be. This action makes it possible to do this from a
           control surface.
@@ -185,14 +186,6 @@ ARDOUR_UI::install_actions ()
        act = global_actions.register_action (main_actions, X_("Scripting"), S_("Session|Scripting"));
        ActionManager::session_sensitive_actions.push_back (act);
 
-       act = global_actions.register_action (main_actions, X_("AddLuaScript"), _("Add Lua Script..."),
-                     sigc::mem_fun (*this, &ARDOUR_UI::add_lua_script));
-       ActionManager::session_sensitive_actions.push_back (act);
-
-       act = global_actions.register_action (main_actions, X_("RemoveLuaScript"), _("Remove Lua Script"),
-                     sigc::mem_fun (*this, &ARDOUR_UI::remove_lua_script));
-       ActionManager::session_sensitive_actions.push_back (act);
-
        act = global_actions.register_action (main_actions, X_("OpenVideo"), _("Open Video..."),
                                              sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::add_video), (Gtk::Window*) 0));
        ActionManager::session_sensitive_actions.push_back (act);
@@ -323,6 +316,27 @@ ARDOUR_UI::install_actions ()
        act = global_actions.register_action (common_actions, "playhead-backward-to-grid", _("Playhead to Previous Grid"), sigc::mem_fun(editor, &PublicEditor::playhead_backward_to_grid));
        ActionManager::session_sensitive_actions.push_back (act);
 
+       act = global_actions.register_action (common_actions, "start-range-from-playhead", _("Start Range from Playhead"), sigc::bind (sigc::mem_fun(editor, &PublicEditor::keyboard_selection_begin), Editing::EDIT_IGNORE_MOUSE ));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "finish-range-from-playhead", _("Finish Range from Playhead"), sigc::bind (sigc::mem_fun(editor, &PublicEditor::keyboard_selection_finish), false, Editing::EDIT_IGNORE_MOUSE ));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "start-range", _("Start Range"), sigc::bind (sigc::mem_fun(editor, &PublicEditor::keyboard_selection_begin), Editing::EDIT_IGNORE_NONE));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "finish-range", _("Finish Range"), sigc::bind (sigc::mem_fun(editor, &PublicEditor::keyboard_selection_finish), false, Editing::EDIT_IGNORE_NONE));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "start-punch-range", _("Start Punch Range"), sigc::mem_fun(editor, &PublicEditor::set_punch_start_from_edit_point));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "finish-punch-range", _("Finish Punch Range"), sigc::mem_fun(editor, &PublicEditor::set_punch_end_from_edit_point));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "start-loop-range", _("Start Loop Range"), sigc::mem_fun(editor, &PublicEditor::set_loop_start_from_edit_point));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "finish-loop-range", _("Finish Loop Range"), sigc::mem_fun(editor, &PublicEditor::set_loop_end_from_edit_point));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "alt-start-range", _("Start Range"), sigc::bind (sigc::mem_fun(editor, &PublicEditor::keyboard_selection_begin), Editing::EDIT_IGNORE_NONE));
+       ActionManager::session_sensitive_actions.push_back (act);
+       act = global_actions.register_action (common_actions, "alt-finish-range", _("Finish Range"), sigc::bind (sigc::mem_fun(editor, &PublicEditor::keyboard_selection_finish), false, Editing::EDIT_IGNORE_NONE));
+       ActionManager::session_sensitive_actions.push_back (act);
+
        /* These "change" actions are not intended to be used inside menus, but
           are for the tab/window control buttons, which have somewhat odd
           semantics.
@@ -452,6 +466,10 @@ ARDOUR_UI::install_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::write_sensitive_actions.push_back (act);
 
+       act = global_actions.register_action (transport_actions, X_("RecordCountIn"), _("Record w/Count-In"), sigc::mem_fun(*this, &ARDOUR_UI::transport_rec_count_in));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::write_sensitive_actions.push_back (act);
+
        act = global_actions.register_action (transport_actions, X_("Record"), _("Enable Record"), sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::transport_record), false));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::write_sensitive_actions.push_back (act);
@@ -626,7 +644,7 @@ ARDOUR_UI::install_actions ()
        /* MIDI */
 
        Glib::RefPtr<ActionGroup> midi_actions = global_actions.create_action_group (X_("MIDI"));
-       global_actions.register_action (midi_actions, X_("panic"), _("Panic"), sigc::mem_fun(*this, &ARDOUR_UI::midi_panic));
+       global_actions.register_action (midi_actions, X_("panic"), _("Panic (Send MIDI all-notes-off)"), sigc::mem_fun(*this, &ARDOUR_UI::midi_panic));
 }
 
 void
@@ -753,7 +771,6 @@ ARDOUR_UI::save_ardour_state ()
        LocaleGuard lg; // one guard to rule them all
        XMLNode* node = new XMLNode (keyboard->get_state());
        Config->add_extra_xml (*node);
-       Config->add_extra_xml (get_transport_controllable_state());
 
        XMLNode* window_node = new XMLNode (X_("UI"));
        window_node->add_property (_status_bar_visibility.get_state_name().c_str(), _status_bar_visibility.get_state_value ());