A couple GUI tweaks - minor toolbar reorganization, trying to get the width down...
[ardour.git] / gtk2_ardour / ardour_ui_dependents.cc
index 68c1edd3e8aaebd24ea485fc5f4447d5e9020ffa..0603fc6baa5acb95ee365736ac18eb2be21734c1 100644 (file)
 */
 
 #include <cstdio>
+
+#include <gtkmm/accelmap.h>
+
 #include <pbd/error.h>
 #include "ardour_ui.h"
 #include "public_editor.h"
 #include "mixer_ui.h"
-#include "meter_bridge.h"
 #include "keyboard.h"
 #include "route_params_ui.h"
 #include "i18n.h"
 
 using namespace sigc;
-
+using namespace Gtk;
+using namespace PBD;
 
 namespace ARDOUR {
        class Session;
@@ -59,24 +62,16 @@ ARDOUR_UI::we_have_dependents ()
 void
 ARDOUR_UI::setup_keybindings ()
 {
-       /* install default bindings */
-
-       KeyboardTarget *defaults = new KeyboardTarget (editor->window(), X_("default"));
-
-       XMLNode* keynode = ARDOUR::Config->get_keys();
-
-       if (keynode != 0) {
-               defaults->set_binding_state (*keynode);
-               editor->set_binding_state (*keynode);
-               mixer->set_binding_state (*keynode);
-               meter_bridge->set_binding_state (*keynode);
-       } else {
-               error << _("keyboard_target: error setting binding state: invalid node") << endmsg;
-       }
+       install_actions ();
+       RedirectBox::register_actions ();
        
-       /* use the default keyboard target for now */
+       std::string key_binding_file = ARDOUR::find_config_file("ardour.bindings");
 
-       keyboard->set_default_target (defaults);
+       try {
+               AccelMap::load (key_binding_file);
+       } catch (...) {
+               error << "ardour key bindings file not found" << endmsg;
+       }
 }
 
 void
@@ -84,8 +79,6 @@ ARDOUR_UI::connect_dependents_to_session (ARDOUR::Session *s)
 {
        editor->connect_to_session (s);
        mixer->connect_to_session (s);
-
-       meter_bridge->set_session (s);
 }
 
 void