Use dedicated common actions per edit context

Pianoroll and main editor mouse-mode/tool actions are
now separate.
This commit is contained in:
Robin Gareus 2025-03-05 22:08:48 +01:00
parent 13ee3d9fc3
commit d8e7e24f59
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
5 changed files with 21 additions and 22 deletions

View file

@ -79,9 +79,9 @@ playhead to the n-th marker.
The "move" commands all move the active marker(s). Jump to the first 9 markers using
the keypad digits 1-9 (requires numlock).
%mmode Editor Mouse Modes
%mmode Editing Mouse Modes
%mouse Editor Mouse Usage
%mouse Editing Mouse Usage
Right click on most objects and controls displays a context menu
Shift+Right click deletes most objects.
OS X users without a 3 button mouse can use {\tt Option+Ctrl+Left} to simulate "Middle" for some purposes.

View file

@ -69,7 +69,6 @@ using std::string;
sigc::signal<void> EditingContext::DropDownKeys;
Gtkmm2ext::Bindings* EditingContext::button_bindings = nullptr;
Glib::RefPtr<Gtk::ActionGroup> EditingContext::_midi_actions;
Glib::RefPtr<Gtk::ActionGroup> EditingContext::_common_actions;
std::vector<std::string> EditingContext::grid_type_strings;
MouseCursors* EditingContext::_cursors = nullptr;
EditingContext* EditingContext::_current_editing_context = nullptr;
@ -299,11 +298,7 @@ EditingContext::set_selected_midi_region_view (MidiRegionView& mrv)
void
EditingContext::register_common_actions (Bindings* common_bindings)
{
if (_common_actions) {
return;
}
_common_actions = ActionManager::create_action_group (common_bindings, X_("Editing"));
_common_actions = ActionManager::create_action_group (common_bindings, _name);
reg_sens (_common_actions, "temporal-zoom-out", _("Zoom Out"), []() { current_editing_context()->temporal_zoom_step (true); });
reg_sens (_common_actions, "temporal-zoom-in", _("Zoom In"), []() { current_editing_context()->temporal_zoom_step (false); });
@ -330,6 +325,10 @@ EditingContext::register_common_actions (Bindings* common_bindings)
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); });
if (ActionManager::get_action_group(X_("Zoom"))) {
return;
}
Glib::RefPtr<ActionGroup> zoom_actions = ActionManager::create_action_group (common_bindings, X_("Zoom"));
RadioAction::Group zoom_group;
@ -2187,19 +2186,19 @@ EditingContext::get_mouse_mode_action (MouseMode m) const
{
switch (m) {
case MouseRange:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-range"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-range"));
case MouseObject:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-object"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-object"));
case MouseCut:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-cut"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-cut"));
case MouseDraw:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-draw"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-draw"));
case MouseTimeFX:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-timefx"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-timefx"));
case MouseGrid:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-grid"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-grid"));
case MouseContent:
return ActionManager::get_action (X_("Editing"), X_("set-mouse-mode-content"));
return ActionManager::get_action (_name.c_str(), X_("set-mouse-mode-content"));
}
return Glib::RefPtr<Action>();
}
@ -2209,9 +2208,9 @@ EditingContext::bind_mouse_mode_buttons ()
{
RefPtr<Action> act;
act = ActionManager::get_action (X_("Editing"), X_("temporal-zoom-in"));
act = ActionManager::get_action (_name.c_str(), X_("temporal-zoom-in"));
zoom_in_button.set_related_action (act);
act = ActionManager::get_action (X_("Editing"), X_("temporal-zoom-out"));
act = ActionManager::get_action (_name.c_str(), X_("temporal-zoom-out"));
zoom_out_button.set_related_action (act);
mouse_move_button.set_related_action (get_mouse_mode_action (Editing::MouseObject));
@ -3295,7 +3294,7 @@ EditingContext::load_shared_bindings ()
Bindings* midi_bindings = Bindings::get_bindings (X_("MIDI"));
register_midi_actions (midi_bindings);
Bindings* shared_bindings = Bindings::get_bindings (X_("Editing"));
Bindings* shared_bindings = Bindings::get_bindings (_name);
register_common_actions (shared_bindings);
/* Give this editing context the chance to add more mode mode actions */

View file

@ -408,7 +408,7 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider
void transpose_region ();
static void register_midi_actions (Gtkmm2ext::Bindings*);
static void register_common_actions (Gtkmm2ext::Bindings*);
void register_common_actions (Gtkmm2ext::Bindings*);
ArdourCanvas::Rectangle* rubberband_rect;
@ -487,7 +487,7 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider
bool within_track_canvas;
static Glib::RefPtr<Gtk::ActionGroup> _midi_actions;
static Glib::RefPtr<Gtk::ActionGroup> _common_actions;
Glib::RefPtr<Gtk::ActionGroup> _common_actions;
void load_shared_bindings ();

View file

@ -93,7 +93,7 @@ Editor::register_actions ()
{
RefPtr<Action> act;
editor_actions = ActionManager::create_action_group (bindings, editor_name());
editor_actions = ActionManager::create_action_group (bindings, X_("Editor"));
editor_menu_actions = ActionManager::create_action_group (bindings, X_("EditorMenu"));
/* non-operative menu items for menu bar */

View file

@ -32,7 +32,7 @@ const int PublicEditor::horizontal_spacing = 6;
ARDOUR::DataType PublicEditor::pbdid_dragged_dt = ARDOUR::DataType::NIL;
PublicEditor::PublicEditor ()
: EditingContext (X_("Editor"))
: EditingContext (X_("Editing"))
, Tabbable (_("Editor"), X_("editor"), NULL, true, Tabbable::PaneLayout (Tabbable::AttLeft | Tabbable::AttBottom | Tabbable::PaneRight))
{
_suspend_route_redisplay_counter.store (0);