From 2c6799f247afa3b77f0e3d878666409fd7f728bc Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 4 Aug 2015 14:00:57 -0400 Subject: [PATCH] changes to support new key bindings editor design --- gtk2_ardour/ardour_ui.h | 10 ++++++---- gtk2_ardour/ardour_ui_dialogs.cc | 12 ++++++++++++ gtk2_ardour/editor.cc | 4 ++-- gtk2_ardour/editor.h | 1 - gtk2_ardour/editor_actions.cc | 4 ++-- gtk2_ardour/keyboard.cc | 2 +- gtk2_ardour/public_editor.h | 3 +++ 7 files changed, 26 insertions(+), 10 deletions(-) diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index e6ec7bcb50..b202a0dff5 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -333,6 +333,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr bool tabbed_window_state_event_handler (GdkEventWindowState*, void* object); bool key_event_handler (GdkEventKey*, Gtk::Window* window); + Gtkmm2ext::ActionMap global_actions; + Gtkmm2ext::Bindings global_bindings; + protected: friend class PublicEditor; @@ -648,7 +651,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr Gtk::HBox rc_option_editor_placeholder; WM::Proxy speaker_config_window; - WM::Proxy key_editor; WM::Proxy add_route_dialog; WM::Proxy about; WM::Proxy location_ui; @@ -664,6 +666,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr WM::ProxyWithConstructor big_clock_window; WM::ProxyWithConstructor audio_port_matrix; WM::ProxyWithConstructor midi_port_matrix; + WM::ProxyWithConstructor key_editor; /* creator methods */ @@ -672,7 +675,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr AddVideoDialog* create_add_video_dialog (); BigClockWindow* create_big_clock_window(); GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType); - + KeyEditor* create_key_editor (); + ARDOUR::SystemExec *video_server_process; void handle_locations_change (ARDOUR::Location*); @@ -828,8 +832,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr bool main_window_delete_event (GdkEventAny*); bool idle_ask_about_quit (); - Gtkmm2ext::ActionMap global_actions; - Gtkmm2ext::Bindings global_bindings; void load_bindings (); }; diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index ca284698d1..5997c9045b 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -473,6 +473,18 @@ ARDOUR_UI::new_midi_tracer_window () } } +KeyEditor* +ARDOUR_UI::create_key_editor () +{ + KeyEditor* kedit = new KeyEditor; + + kedit->add_tab (_("Global"), global_bindings); + kedit->add_tab (_("Editing"), editor->bindings); + kedit->add_tab (_("Mixing"), mixer->bindings); + + return kedit; +} + BundleManager* ARDOUR_UI::create_bundle_manager () { diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index ee239bef08..44cde59794 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -471,7 +471,7 @@ Editor::Editor () last_event_time.tv_sec = 0; last_event_time.tv_usec = 0; - global_hpacker.set_data ("ardour-bindings", &key_bindings); + global_hpacker.set_data ("ardour-bindings", &bindings); selection_op_history.clear(); before.clear(); @@ -5862,7 +5862,7 @@ Editor::use_own_window (bool and_fill_it) // win->signal_realize().connect (*this, &Editor::on_realize); win->signal_event().connect (sigc::mem_fun (*this, &Editor::generic_event_handler)); - win->set_data ("ardour-bindings", &key_bindings); + win->set_data ("ardour-bindings", &bindings); update_title (); } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 6240663e3b..8c86203a68 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -551,7 +551,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool constructed; Gtkmm2ext::ActionMap myactions; - Gtkmm2ext::Bindings key_bindings; // to keep track of the playhead position for control_scroll boost::optional _control_scroll_target; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 35fea0eb36..dcc81dd557 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -754,8 +754,8 @@ Editor::register_actions () void Editor::load_bindings () { - key_bindings.set_action_map (myactions); - key_bindings.load ("editor"); + bindings.set_action_map (myactions); + bindings.load ("editor"); } void diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc index 76f743d64e..3612e5facb 100644 --- a/gtk2_ardour/keyboard.cc +++ b/gtk2_ardour/keyboard.cc @@ -35,7 +35,7 @@ using namespace Gtk; using namespace PBD; using namespace ARDOUR; using Gtkmm2ext::Keyboard; - + static void accel_map_changed (GtkAccelMap* /*map*/, gchar* /*path*/, diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index e2e0e4fbc1..0274c40474 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -43,6 +43,7 @@ #include "canvas/fwd.h" #include "gtkmm2ext/actions.h" +#include "gtkmm2ext/bindings.h" #include "gtkmm2ext/tabbable.h" #include "gtkmm2ext/visibility_tracker.h" @@ -421,6 +422,8 @@ class PublicEditor : public Gtkmm2ext::Tabbable { PBD::Signal0 SnapChanged; PBD::Signal0 MouseModeChanged; + Gtkmm2ext::Bindings bindings; + protected: friend class DisplaySuspender; virtual void suspend_route_redisplay () = 0;