diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index 51d55b132d..1378234d9a 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -136,6 +136,7 @@
+
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 674f1077f8..fb917ac19e 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -470,8 +470,6 @@ Editor::Editor ()
edit_hscrollbar.set_name ("EditorHScrollbar");
build_cursors ();
- setup_toolbar ();
- setup_midi_toolbar ();
edit_point_clock.ValueChanged.connect (mem_fun(*this, &Editor::edit_point_clock_changed));
@@ -605,6 +603,9 @@ Editor::Editor ()
register_actions ();
+ setup_toolbar ();
+ setup_midi_toolbar ();
+
snap_type = SnapToBeat;
set_snap_to (snap_type);
snap_mode = SnapOff;
@@ -2995,8 +2996,10 @@ Editor::setup_toolbar ()
}
void
-Editor::midi_panic_button_pressed ()
+Editor::midi_panic ()
{
+ cerr << "MIDI panic\n";
+
if (session) {
session->midi_panic();
}
@@ -3005,26 +3008,8 @@ Editor::midi_panic_button_pressed ()
void
Editor::setup_midi_toolbar ()
{
-#if 0
- midi_tool_pencil_button.add (*(manage (new Image (::get_icon("midi_tool_pencil")))));
- midi_tool_pencil_button.set_relief(Gtk::RELIEF_NONE);
- midi_tool_buttons.push_back (&midi_tool_pencil_button);
- midi_tool_select_button.add (*(manage (new Image (::get_icon("midi_tool_select")))));
- midi_tool_select_button.set_relief(Gtk::RELIEF_NONE);
- midi_tool_buttons.push_back (&midi_tool_select_button);
- midi_tool_resize_button.add (*(manage (new Image (::get_icon("strip_width")))));
- midi_tool_resize_button.set_relief(Gtk::RELIEF_NONE);
- midi_tool_buttons.push_back (&midi_tool_resize_button);
- midi_tool_erase_button.add (*(manage (new Image (::get_icon("midi_tool_erase")))));
- midi_tool_erase_button.set_relief(Gtk::RELIEF_NONE);
- midi_tool_buttons.push_back (&midi_tool_erase_button);
+ RefPtr act;
- ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_pencil_button, _("Add/Move/Stretch Notes"));
- ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_select_button, _("Select/Move Notes"));
- ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_resize_button, _("Resize Notes"));
- ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_erase_button, _("Erase Notes"));
-#endif
-
/* Midi sound notes */
midi_sound_notes.add (*(manage (new Image (::get_icon("midi_sound_notes")))));
midi_sound_notes.set_relief(Gtk::RELIEF_NONE);
@@ -3033,8 +3018,9 @@ Editor::setup_midi_toolbar ()
/* Panic */
+ act = ActionManager::get_action (X_("MIDI"), X_("panic"));
midi_panic_button.set_name("MidiPanicButton");
- midi_panic_button.signal_pressed().connect (mem_fun(this, &Editor::midi_panic_button_pressed));
+ act->connect_proxy (midi_panic_button);
panic_box.pack_start (midi_sound_notes , true, true);
panic_box.pack_start (midi_panic_button, true, true);
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 56a7755051..5b68abc7bd 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1598,7 +1598,7 @@ public:
Gtk::HBox panic_box;
Gtk::Button midi_panic_button;
Gtk::ToggleButton midi_sound_notes;
- void midi_panic_button_pressed ();
+ void midi_panic ();
bool sound_notes () const { return midi_sound_notes.get_active(); }
void setup_midi_toolbar ();
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index 21edd3828c..db99e3529e 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -866,12 +866,18 @@ Editor::register_actions ()
Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act);
tact->set_active (true);
+ /* MIDI */
+
+ Glib::RefPtr midi_actions = ActionGroup::create (X_("MIDI"));
+ ActionManager::register_action (midi_actions, X_("panic"), _("Panic"), mem_fun(*this, &Editor::midi_panic));
+
ActionManager::add_action_group (rl_actions);
ActionManager::add_action_group (ruler_actions);
ActionManager::add_action_group (zoom_actions);
ActionManager::add_action_group (mouse_mode_actions);
ActionManager::add_action_group (snap_actions);
ActionManager::add_action_group (editor_actions);
+ ActionManager::add_action_group (midi_actions);
}
void
diff --git a/gtk2_ardour/mnemonic-us.bindings.in b/gtk2_ardour/mnemonic-us.bindings.in
index 0979894fb0..46d7eeaa1c 100644
--- a/gtk2_ardour/mnemonic-us.bindings.in
+++ b/gtk2_ardour/mnemonic-us.bindings.in
@@ -84,6 +84,8 @@ This mode provides many different operations on both regions and control points,
%mopsolo Mouse Ops on Solo Buttons only
%mopsfader Mouse Ops on Faders \& Plugin Controls
+%midi MIDI specific commands
+
;; END GROUP DEFINITIONS
;; punctuation
@@ -154,6 +156,7 @@ This mode provides many different operations on both regions and control points,
@rop|Editor/naturalize-region|<@LEVEL4@>o|move to original position
@trans|Editor/set-playhead|p|toggle auto-punch status
@select|Editor/select-all-before-playhead|<@PRIMARY@>p|all before playhead
+@midi|MIDI/panic|<@SECONDARY@>p|MIDI panic (stop all notes etc)
@select|Editor/select-all-after-playhead|<@TERTIARY@><@PRIMARY@>p|all after playhead
;; MIDDLE ROW