mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 00:04:56 +01:00
change how mouse mode actions are defined
they now use a lambda for the functor, and the lambda calls current_editing_context() to pick which EditingContext will be affected. this design replaces one where each EditingContext had its own set of mouse mode actions defined, using its own name as the action group
This commit is contained in:
parent
462c5ad400
commit
22a5113b59
7 changed files with 67 additions and 67 deletions
|
|
@ -159,22 +159,22 @@ This mode provides many different operations on both regions and control points,
|
||||||
@gmark|Common/jump-backward-to-mark| q|to previous mark
|
@gmark|Common/jump-backward-to-mark| q|to previous mark
|
||||||
@sess|Common/Quit| <@PRIMARY@>q|quit
|
@sess|Common/Quit| <@PRIMARY@>q|quit
|
||||||
@gmark|Common/jump-forward-to-mark| w|to next mark
|
@gmark|Common/jump-forward-to-mark| w|to next mark
|
||||||
@mmode|Editor/set-mouse-mode-content| e|content mode
|
@mmode|Editing/set-mouse-mode-content| e|content mode
|
||||||
@sess|Main/QuickExport| <@PRIMARY@>e|quick export session
|
@sess|Main/QuickExport| <@PRIMARY@>e|quick export session
|
||||||
@rop|Region/export-region| <@PRIMARY@><@SECONDARY@>e|export selected region(s)
|
@rop|Region/export-region| <@PRIMARY@><@SECONDARY@>e|export selected region(s)
|
||||||
@sess|Main/ExportAudio| <@SECONDARY@>e|export session
|
@sess|Main/ExportAudio| <@SECONDARY@>e|export session
|
||||||
@sess|Main/StemExport| <@SECONDARY@><@TERTIARY@>e|stem export selected tracks
|
@sess|Main/StemExport| <@SECONDARY@><@TERTIARY@>e|stem export selected tracks
|
||||||
@select|Editor/select-all-after-edit-cursor| <@PRIMARY@><@TERTIARY@>e|select all after EP
|
@select|Editor/select-all-after-edit-cursor| <@PRIMARY@><@TERTIARY@>e|select all after EP
|
||||||
@vis|Editor/show-editor-mixer| <@TERTIARY@>e|toggle editor window mixer
|
@vis|Editor/show-editor-mixer| <@TERTIARY@>e|toggle editor window mixer
|
||||||
@mmode|Editor/set-mouse-mode-range| r|range mode
|
@mmode|Editing/set-mouse-mode-range| r|range mode
|
||||||
@wvis|Common/show-recorder| <@SECONDARY@>r|show recorder page
|
@wvis|Common/show-recorder| <@SECONDARY@>r|show recorder page
|
||||||
@editing|Editing/redo| <@PRIMARY@>r|redo
|
@editing|Editing/redo| <@PRIMARY@>r|redo
|
||||||
@edit|Editor/select-from-regions| <@PRIMARY@><@TERTIARY@>r|set Range to selected regions
|
@edit|Editor/select-from-regions| <@PRIMARY@><@TERTIARY@>r|set Range to selected regions
|
||||||
@edit|Editor/add-range-marker-from-selection| <@SECONDARY@><@TERTIARY@>r|Add single Range marker from selection
|
@edit|Editor/add-range-marker-from-selection| <@SECONDARY@><@TERTIARY@>r|Add single Range marker from selection
|
||||||
@trans|Transport/Record| <@TERTIARY@>r|engage record
|
@trans|Transport/Record| <@TERTIARY@>r|engage record
|
||||||
@mmode|Editor/set-mouse-mode-timefx| t|timefx mode
|
@mmode|Editing/set-mouse-mode-timefx| t|timefx mode
|
||||||
@gselect|Common/select-all-visible-lanes| <@PRIMARY@>t|select all visible lanes
|
@gselect|Common/select-all-visible-lanes| <@PRIMARY@>t|select all visible lanes
|
||||||
@mmode|Editor/set-mouse-mode-grid| y|grid mode
|
@mmode|Editing/set-mouse-mode-grid| y|grid mode
|
||||||
@editing|Editing/alternate-redo| <@PRIMARY@>y|redo
|
@editing|Editing/alternate-redo| <@PRIMARY@>y|redo
|
||||||
@select|Editor/select-all-between-cursors| <@PRIMARY@>u|select all regions enclosed by Range
|
@select|Editor/select-all-between-cursors| <@PRIMARY@>u|select all regions enclosed by Range
|
||||||
@select|Editor/select-all-within-cursors| u|select all regions touched by Range
|
@select|Editor/select-all-within-cursors| u|select all regions touched by Range
|
||||||
|
|
@ -202,7 +202,7 @@ This mode provides many different operations on both regions and control points,
|
||||||
@sess|Main/SnapshotStay| <@PRIMARY@><@TERTIARY@>s|snapshot session
|
@sess|Main/SnapshotStay| <@PRIMARY@><@TERTIARY@>s|snapshot session
|
||||||
@edtrk|Editor/track-solo-toggle| <@SECONDARY@>s|toggle track solo status
|
@edtrk|Editor/track-solo-toggle| <@SECONDARY@>s|toggle track solo status
|
||||||
@edit|Editor/ToggleSummary| <@TERTIARY@>s|toggle summary
|
@edit|Editor/ToggleSummary| <@TERTIARY@>s|toggle summary
|
||||||
@mmode|Editor/set-mouse-mode-draw| d|note-draw mode
|
@mmode|Editing/set-mouse-mode-draw| d|note-draw mode
|
||||||
@edit|Editor/duplicate| <@PRIMARY@>d|duplicate (once)
|
@edit|Editor/duplicate| <@PRIMARY@>d|duplicate (once)
|
||||||
@edit|Editor/multi-duplicate| <@SECONDARY@>d|duplicate (multi)
|
@edit|Editor/multi-duplicate| <@SECONDARY@>d|duplicate (multi)
|
||||||
@select|Editor/select-all-in-punch-range| <@TERTIARY@>d|select all in punch range
|
@select|Editor/select-all-in-punch-range| <@TERTIARY@>d|select all in punch range
|
||||||
|
|
@ -212,7 +212,7 @@ This mode provides many different operations on both regions and control points,
|
||||||
@rop|Region/show-rhythm-ferret| <@SECONDARY@>f|show rhythm ferret window
|
@rop|Region/show-rhythm-ferret| <@SECONDARY@>f|show rhythm ferret window
|
||||||
@wvis|Common/ToggleMaximalEditor| <@PRIMARY@><@SECONDARY@>f|maximise editor space
|
@wvis|Common/ToggleMaximalEditor| <@PRIMARY@><@SECONDARY@>f|maximise editor space
|
||||||
@wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
|
@wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
|
||||||
@mmode|Editor/set-mouse-mode-object| g|object mode
|
@mmode|Editing/set-mouse-mode-object| g|object mode
|
||||||
@edit|Editor/group-selected-regions| <@PRIMARY@>g|group selected regions
|
@edit|Editor/group-selected-regions| <@PRIMARY@>g|group selected regions
|
||||||
@edit|Editor/ungroup-selected-regions| <@PRIMARY@><@TERTIARY@>g|ungroup selected regions
|
@edit|Editor/ungroup-selected-regions| <@PRIMARY@><@TERTIARY@>g|ungroup selected regions
|
||||||
@edit|Region/play-selected-regions| h|play selected region(s)
|
@edit|Region/play-selected-regions| h|play selected region(s)
|
||||||
|
|
@ -233,7 +233,7 @@ This mode provides many different operations on both regions and control points,
|
||||||
@aep|Region/align-regions-sync-relative| x|align sync points (relative)
|
@aep|Region/align-regions-sync-relative| x|align sync points (relative)
|
||||||
@editing|Editing/editor-cut| <@PRIMARY@>x|cut
|
@editing|Editing/editor-cut| <@PRIMARY@>x|cut
|
||||||
@edit|Editor/cut-paste-section| <@PRIMARY@><@TERTIARY@>x|cut \& paste section
|
@edit|Editor/cut-paste-section| <@PRIMARY@><@TERTIARY@>x|cut \& paste section
|
||||||
@mmode|Editor/set-mouse-mode-cut| c|cut mode
|
@mmode|Editing/set-mouse-mode-cut| c|cut mode
|
||||||
@editing|Editing/editor-copy| <@PRIMARY@>c|copy
|
@editing|Editing/editor-copy| <@PRIMARY@>c|copy
|
||||||
@wvis|Common/show-trigger| <@SECONDARY@>c|show cues page
|
@wvis|Common/show-trigger| <@SECONDARY@>c|show cues page
|
||||||
@edit|Editor/editor-crop| <@PRIMARY@><@SECONDARY@>c|crop range
|
@edit|Editor/editor-crop| <@PRIMARY@><@SECONDARY@>c|crop range
|
||||||
|
|
@ -393,7 +393,7 @@ This mode provides many different operations on both regions and control points,
|
||||||
@eep|Editor/cycle-edit-mode| 1|cycle edit mode {slide, lock, ripple}
|
@eep|Editor/cycle-edit-mode| 1|cycle edit mode {slide, lock, ripple}
|
||||||
@eep|Editor/cycle-edit-point| 2|next EP w/o marker {playhead, mouse}
|
@eep|Editor/cycle-edit-point| 2|next EP w/o marker {playhead, mouse}
|
||||||
@eep|Editor/cycle-edit-point-with-marker| <@PRIMARY@>2|next EP w/marker {playhead, mouse, marker}
|
@eep|Editor/cycle-edit-point-with-marker| <@PRIMARY@>2|next EP w/marker {playhead, mouse, marker}
|
||||||
@mmode|Editor/set-mouse-mode-object-range| 3|Smart Mode (provide some Range tools in Object mode)
|
@mmode|Editing/set-mouse-mode-object-range| 3|Smart Mode (provide some Range tools in Object mode)
|
||||||
@gmode|Transport/ToggleFollowEdits| <@PRIMARY@>3|toggle playhead follows edits
|
@gmode|Transport/ToggleFollowEdits| <@PRIMARY@>3|toggle playhead follows edits
|
||||||
@grid|Editor/cycle-snap-mode| 4|cycle to next snap mode {On/Off}
|
@grid|Editor/cycle-snap-mode| 4|cycle to next snap mode {On/Off}
|
||||||
@grid|Editor/prev-grid-choice| 5|use prev grid unit
|
@grid|Editor/prev-grid-choice| 5|use prev grid unit
|
||||||
|
|
|
||||||
|
|
@ -313,6 +313,16 @@ EditingContext::register_common_actions (Bindings* common_bindings)
|
||||||
reg_sens (_common_actions, "editor-cut", _("Cut"), []() { current_editing_context()->cut() ; });
|
reg_sens (_common_actions, "editor-cut", _("Cut"), []() { current_editing_context()->cut() ; });
|
||||||
reg_sens (_common_actions, "editor-copy", _("Copy"), []() { current_editing_context()->copy() ; });
|
reg_sens (_common_actions, "editor-copy", _("Copy"), []() { current_editing_context()->copy() ; });
|
||||||
reg_sens (_common_actions, "editor-paste", _("Paste"), []() { current_editing_context()->keyboard_paste() ; });
|
reg_sens (_common_actions, "editor-paste", _("Paste"), []() { current_editing_context()->keyboard_paste() ; });
|
||||||
|
|
||||||
|
RadioAction::Group mouse_mode_group;
|
||||||
|
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-object", _("Grab (Object Tool)"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseObject); });
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-range", _("Range Tool"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseRange); });
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-draw", _("Note Drawing Tool"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseDraw); });
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Time FX Tool"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseTimeFX); });
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-grid", _("Grid Tool"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseGrid); });
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-content", _("Internal Edit (Content Tool)"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseContent); });
|
||||||
|
ActionManager::register_radio_action (_common_actions, mouse_mode_group, "set-mouse-mode-cut", _("Cut Tool"), []() { current_editing_context()->mouse_mode_toggled (Editing::MouseCut); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -2157,46 +2167,25 @@ EditingContext::pack_snap_box ()
|
||||||
Glib::RefPtr<Action>
|
Glib::RefPtr<Action>
|
||||||
EditingContext::get_mouse_mode_action (MouseMode m) const
|
EditingContext::get_mouse_mode_action (MouseMode m) const
|
||||||
{
|
{
|
||||||
char const * group_name = _name.c_str(); /* use char* to force correct ::get_action variant */
|
|
||||||
|
|
||||||
switch (m) {
|
switch (m) {
|
||||||
case MouseRange:
|
case MouseRange:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-range"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-range"));
|
||||||
case MouseObject:
|
case MouseObject:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-object"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-object"));
|
||||||
case MouseCut:
|
case MouseCut:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-cut"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-cut"));
|
||||||
case MouseDraw:
|
case MouseDraw:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-draw"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-draw"));
|
||||||
case MouseTimeFX:
|
case MouseTimeFX:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-timefx"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-timefx"));
|
||||||
case MouseGrid:
|
case MouseGrid:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-grid"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-grid"));
|
||||||
case MouseContent:
|
case MouseContent:
|
||||||
return ActionManager::get_action (group_name, X_("set-mouse-mode-content"));
|
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-content"));
|
||||||
}
|
}
|
||||||
return Glib::RefPtr<Action>();
|
return Glib::RefPtr<Action>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
EditingContext::register_mouse_mode_actions ()
|
|
||||||
{
|
|
||||||
RefPtr<Action> act;
|
|
||||||
std::string group_name = _name;
|
|
||||||
Glib::RefPtr<ActionGroup> mouse_mode_actions = ActionManager::create_action_group (bindings, group_name);
|
|
||||||
RadioAction::Group mouse_mode_group;
|
|
||||||
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-object", _("Grab (Object Tool)"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseObject));
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-range", _("Range Tool"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseRange));
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-draw", _("Note Drawing Tool"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseDraw));
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Time FX Tool"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseTimeFX));
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-grid", _("Grid Tool"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseGrid));
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-content", _("Internal Edit (Content Tool)"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseContent));
|
|
||||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-cut", _("Cut Tool"), std::bind (&EditingContext::mouse_mode_toggled, this, Editing::MouseCut));
|
|
||||||
|
|
||||||
add_mouse_mode_actions (mouse_mode_actions);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EditingContext::bind_mouse_mode_buttons ()
|
EditingContext::bind_mouse_mode_buttons ()
|
||||||
{
|
{
|
||||||
|
|
@ -3275,4 +3264,25 @@ EditingContext::copy ()
|
||||||
cut_copy (Copy);
|
cut_copy (Copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
EditingContext::load_shared_bindings ()
|
||||||
|
{
|
||||||
|
/* This set of bindings may expand in the future to include things
|
||||||
|
* other than MIDI editing, but for now this is all we've got as far as
|
||||||
|
* bindings that need to be distinct from the Editors (because some of
|
||||||
|
* the keys may overlap.
|
||||||
|
*/
|
||||||
|
|
||||||
|
Bindings* midi_bindings = Bindings::get_bindings (X_("MIDI"));
|
||||||
|
register_midi_actions (midi_bindings);
|
||||||
|
|
||||||
|
Bindings* shared_bindings = Bindings::get_bindings (X_("Editing"));
|
||||||
|
register_common_actions (shared_bindings);
|
||||||
|
|
||||||
|
/* Give this editing context the chance to add more mode mode actions */
|
||||||
|
add_mouse_mode_actions (_common_actions);
|
||||||
|
|
||||||
|
/* Attach bindings to the canvas for this editing context */
|
||||||
|
get_canvas()->set_data ("ardour-bindings", midi_bindings);
|
||||||
|
get_canvas_viewport()->set_data ("ardour-bindings", shared_bindings);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -481,6 +481,8 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider
|
||||||
static Glib::RefPtr<Gtk::ActionGroup> _midi_actions;
|
static Glib::RefPtr<Gtk::ActionGroup> _midi_actions;
|
||||||
static Glib::RefPtr<Gtk::ActionGroup> _common_actions;
|
static Glib::RefPtr<Gtk::ActionGroup> _common_actions;
|
||||||
|
|
||||||
|
void load_shared_bindings ();
|
||||||
|
|
||||||
Editing::GridType pre_internal_grid_type;
|
Editing::GridType pre_internal_grid_type;
|
||||||
Editing::SnapMode pre_internal_snap_mode;
|
Editing::SnapMode pre_internal_snap_mode;
|
||||||
Editing::GridType internal_grid_type;
|
Editing::GridType internal_grid_type;
|
||||||
|
|
@ -679,7 +681,6 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider
|
||||||
void register_grid_actions ();
|
void register_grid_actions ();
|
||||||
|
|
||||||
Glib::RefPtr<Gtk::Action> get_mouse_mode_action (Editing::MouseMode m) const;
|
Glib::RefPtr<Gtk::Action> get_mouse_mode_action (Editing::MouseMode m) const;
|
||||||
void register_mouse_mode_actions ();
|
|
||||||
void bind_mouse_mode_buttons ();
|
void bind_mouse_mode_buttons ();
|
||||||
virtual void add_mouse_mode_actions (Glib::RefPtr<Gtk::ActionGroup>) {}
|
virtual void add_mouse_mode_actions (Glib::RefPtr<Gtk::ActionGroup>) {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,6 @@ Editor::register_actions ()
|
||||||
act->set_sensitive (false);
|
act->set_sensitive (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
register_mouse_mode_actions ();
|
|
||||||
bind_mouse_mode_buttons ();
|
bind_mouse_mode_buttons ();
|
||||||
|
|
||||||
ActionManager::register_action (editor_actions, "step-mouse-mode", _("Step Mouse Mode"), sigc::bind (sigc::mem_fun(*this, &Editor::step_mouse_mode), true));
|
ActionManager::register_action (editor_actions, "step-mouse-mode", _("Step Mouse Mode"), sigc::bind (sigc::mem_fun(*this, &Editor::step_mouse_mode), true));
|
||||||
|
|
@ -765,20 +764,7 @@ Editor::load_bindings ()
|
||||||
bindings = Bindings::get_bindings (editor_name());
|
bindings = Bindings::get_bindings (editor_name());
|
||||||
contents().set_data ("ardour-bindings", bindings);
|
contents().set_data ("ardour-bindings", bindings);
|
||||||
|
|
||||||
/* This set of bindings may expand in the future to include things
|
EditingContext::load_shared_bindings ();
|
||||||
* other than MIDI editing, but for now this is all we've got as far as
|
|
||||||
* bindings that need to be distinct from the Editors (because some of
|
|
||||||
* the keys may overlap.
|
|
||||||
*/
|
|
||||||
|
|
||||||
Bindings* midi_bindings = Bindings::get_bindings (X_("MIDI"));
|
|
||||||
register_midi_actions (midi_bindings);
|
|
||||||
|
|
||||||
Bindings* shared_bindings = Bindings::get_bindings (X_("Editing"));
|
|
||||||
register_common_actions (shared_bindings);
|
|
||||||
|
|
||||||
_track_canvas_viewport->canvas()->set_data ("ardour-bindings", midi_bindings);
|
|
||||||
_track_canvas_viewport->set_data ("ardour-bindings", shared_bindings);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1341,11 +1327,11 @@ Editor::register_region_actions ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::add_mouse_mode_actions (Glib::RefPtr<ActionGroup> mouse_mode_actions)
|
Editor::add_mouse_mode_actions (Glib::RefPtr<ActionGroup> action_group)
|
||||||
{
|
{
|
||||||
RefPtr<Action> act;
|
RefPtr<Action> act;
|
||||||
|
|
||||||
act = ActionManager::register_toggle_action (mouse_mode_actions, "set-mouse-mode-object-range", _("Smart Mode"), sigc::mem_fun (*this, &Editor::mouse_mode_object_range_toggled));
|
act = ActionManager::register_toggle_action (action_group, "set-mouse-mode-object-range", _("Smart Mode"), sigc::mem_fun (*this, &Editor::mouse_mode_object_range_toggled));
|
||||||
smart_mode_action = Glib::RefPtr<ToggleAction>::cast_static (act);
|
smart_mode_action = Glib::RefPtr<ToggleAction>::cast_static (act);
|
||||||
smart_mode_button.set_related_action (smart_mode_action);
|
smart_mode_button.set_related_action (smart_mode_action);
|
||||||
smart_mode_button.set_text (_("Smart"));
|
smart_mode_button.set_text (_("Smart"));
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<Bindings name="Pianoroll">
|
|
||||||
<Press>
|
|
||||||
<Binding key="d" action="Pianoroll/set-mouse-mode-draw" group="pianoroll"/>
|
|
||||||
<Binding key="e" action="Pianoroll/set-mouse-mode-content" group="pianoroll"/>
|
|
||||||
<Binding key="equal" action="Pianoroll/zoom-in" group="pianoroll"/>
|
|
||||||
<Binding key="minus" action="Pianoroll/zoom-in" group="pianoroll"/>
|
|
||||||
</Press>
|
|
||||||
</Bindings>
|
|
||||||
|
|
@ -70,10 +70,6 @@ Pianoroll::Pianoroll (std::string const & name)
|
||||||
mouse_mode = Editing::MouseContent;
|
mouse_mode = Editing::MouseContent;
|
||||||
autoscroll_vertical_allowed = false;
|
autoscroll_vertical_allowed = false;
|
||||||
|
|
||||||
bindings = Bindings::get_bindings (editor_name());
|
|
||||||
|
|
||||||
register_actions ();
|
|
||||||
|
|
||||||
build_grid_type_menu ();
|
build_grid_type_menu ();
|
||||||
build_draw_midi_menus();
|
build_draw_midi_menus();
|
||||||
|
|
||||||
|
|
@ -81,7 +77,14 @@ Pianoroll::Pianoroll (std::string const & name)
|
||||||
build_canvas ();
|
build_canvas ();
|
||||||
build_lower_toolbar ();
|
build_lower_toolbar ();
|
||||||
|
|
||||||
|
load_bindings ();
|
||||||
|
register_actions ();
|
||||||
|
|
||||||
|
/* this is weird because it will use an action that uses current_editing_context */
|
||||||
|
EditingContext* ec = current_editing_context ();
|
||||||
|
switch_editing_context (this);
|
||||||
set_mouse_mode (Editing::MouseContent, true);
|
set_mouse_mode (Editing::MouseContent, true);
|
||||||
|
switch_editing_context (ec);
|
||||||
}
|
}
|
||||||
|
|
||||||
Pianoroll::~Pianoroll ()
|
Pianoroll::~Pianoroll ()
|
||||||
|
|
@ -89,11 +92,18 @@ Pianoroll::~Pianoroll ()
|
||||||
delete bindings;
|
delete bindings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Pianoroll::load_bindings ()
|
||||||
|
{
|
||||||
|
bindings = Bindings::get_bindings (editor_name());
|
||||||
|
load_shared_bindings ();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Pianoroll::register_actions ()
|
Pianoroll::register_actions ()
|
||||||
{
|
{
|
||||||
editor_actions = ActionManager::create_action_group (bindings, editor_name());
|
editor_actions = ActionManager::create_action_group (bindings, editor_name());
|
||||||
register_mouse_mode_actions ();
|
|
||||||
bind_mouse_mode_buttons ();
|
bind_mouse_mode_buttons ();
|
||||||
register_grid_actions ();
|
register_grid_actions ();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@ class Pianoroll : public CueEditor
|
||||||
void cut_copy (Editing::CutCopyOp);
|
void cut_copy (Editing::CutCopyOp);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void load_bindings ();
|
||||||
void register_actions ();
|
void register_actions ();
|
||||||
|
|
||||||
Temporal::timepos_t snap_to_grid (Temporal::timepos_t const & start,
|
Temporal::timepos_t snap_to_grid (Temporal::timepos_t const & start,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue