From f281e7e3c3092f2690201dc28c83db3242542499 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Tue, 15 Jun 2021 10:06:39 -0500 Subject: [PATCH] Slip Contents Drag: disambiguate Slip Contents from prior Contents Trim --- gtk2_ardour/editor_drag.cc | 12 ++++----- gtk2_ardour/editor_drag.h | 6 ++--- gtk2_ardour/editor_mouse.cc | 4 +-- gtk2_ardour/keyboard.cc | 14 +++++------ gtk2_ardour/keyboard.h | 6 ++--- gtk2_ardour/rc_option_editor.cc | 44 ++++++++++++++++----------------- 6 files changed, 43 insertions(+), 43 deletions(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index f450e4a8c5..cf6d61b72a 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -675,20 +675,20 @@ RegionDrag::setup_video_sample_offset () _preview_video = true; } -RegionContentsDrag::RegionContentsDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list const & v) +RegionSlipContentsDrag::RegionSlipContentsDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list const & v) : RegionDrag (e, i, p, v) { - DEBUG_TRACE (DEBUG::Drags, "New RegionContentsDrag\n"); + DEBUG_TRACE (DEBUG::Drags, "New RegionSlipContentsDrag\n"); } void -RegionContentsDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor) +RegionSlipContentsDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor) { Drag::start_grab (event, _editor->cursors()->trimmer); } void -RegionContentsDrag::motion (GdkEvent* event, bool first_move) +RegionSlipContentsDrag::motion (GdkEvent* event, bool first_move) { if (first_move) { _editor->begin_reversible_command (_("Region content trim")); @@ -703,12 +703,12 @@ RegionContentsDrag::motion (GdkEvent* event, bool first_move) } void -RegionContentsDrag::finished (GdkEvent *, bool) +RegionSlipContentsDrag::finished (GdkEvent *, bool) { } void -RegionContentsDrag::aborted (bool) +RegionSlipContentsDrag::aborted (bool) { } diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h index 3b5247661e..c96cca672c 100644 --- a/gtk2_ardour/editor_drag.h +++ b/gtk2_ardour/editor_drag.h @@ -372,12 +372,12 @@ private: }; /** Drag the Contents rather than the bounds of a region (i.e. Slip) */ -class RegionContentsDrag : public RegionDrag +class RegionSlipContentsDrag : public RegionDrag { public: - RegionContentsDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list const &); - virtual ~RegionContentsDrag () {} + RegionSlipContentsDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list const &); + virtual ~RegionSlipContentsDrag () {} virtual void start_grab (GdkEvent *, Gdk::Cursor *); virtual void motion (GdkEvent *, bool); diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 655a2aca0e..6d1c91a09a 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -1061,8 +1061,8 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT } /* click on a normal region view */ - if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::trim_contents_modifier ())) { - _drags->add (new RegionContentsDrag (this, item, clicked_regionview, selection->regions.by_layer())); + if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::slip_contents_modifier ())) { + _drags->add (new RegionSlipContentsDrag (this, item, clicked_regionview, selection->regions.by_layer())); } else if (ArdourKeyboard::indicates_copy (event->button.state)) { add_region_copy_drag (item, event, clicked_regionview); } else if (Keyboard::the_keyboard().key_is_down (GDK_b)) { diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc index 6eeea976bd..3f06417c01 100644 --- a/gtk2_ardour/keyboard.cc +++ b/gtk2_ardour/keyboard.cc @@ -51,8 +51,8 @@ guint ArdourKeyboard::constraint_mod = Keyboard::PrimaryModifier; guint ArdourKeyboard::constraint_mod = Keyboard::TertiaryModifier; #endif -/* TrimDrag::start_grab() */ -guint ArdourKeyboard::trim_contents_mod = Keyboard::PrimaryModifier; +/* RegionSlipContentsDrag */ +guint ArdourKeyboard::slip_contents_mod = Keyboard::PrimaryModifier|Keyboard::TertiaryModifier; /* TrimDrag::motion() */ guint ArdourKeyboard::trim_overlap_mod = Keyboard::TertiaryModifier; @@ -234,7 +234,7 @@ ArdourKeyboard::get_state (void) XMLNode* node = &Keyboard::get_state (); node->set_property ("constraint-modifier", constraint_mod); - node->set_property ("trim-contents-modifier", trim_contents_mod); + node->set_property ("slip-contents-modifier", slip_contents_mod); node->set_property ("trim-overlap-modifier", trim_overlap_mod); node->set_property ("trim-anchored-modifier", trim_anchored_mod); node->set_property ("fine-adjust-modifier", fine_adjust_mod); @@ -248,7 +248,7 @@ int ArdourKeyboard::set_state (const XMLNode& node, int version) { node.get_property ("constraint-modifier", constraint_mod); - node.get_property ("trim-contents-modifier", trim_contents_mod); + node.get_property ("slip-contents-modifier", slip_contents_mod); node.get_property ("trim-overlap-modifier", trim_overlap_mod); node.get_property ("trim-anchored-modifier", trim_anchored_mod); node.get_property ("fine-adjust-modifier", fine_adjust_mod); @@ -262,7 +262,7 @@ void ArdourKeyboard::reset_relevant_modifier_key_mask () { RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | constraint_mod); - RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | trim_contents_mod); + RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | slip_contents_mod); RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | trim_overlap_mod); RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | trim_anchored_mod); RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | fine_adjust_mod); @@ -320,9 +320,9 @@ ArdourKeyboard::set_constraint_modifier (guint mod) } void -ArdourKeyboard::set_trim_contents_modifier (guint mod) +ArdourKeyboard::set_slip_contents_modifier (guint mod) { - trim_contents_mod = mod; + slip_contents_mod = mod; the_keyboard().reset_relevant_modifier_key_mask(); } diff --git a/gtk2_ardour/keyboard.h b/gtk2_ardour/keyboard.h index 86f4285f24..2776b4adbd 100644 --- a/gtk2_ardour/keyboard.h +++ b/gtk2_ardour/keyboard.h @@ -73,9 +73,9 @@ public: /** @return Modifier mask to constrain drags in a particular direction; */ static ModifierMask constraint_modifier () { return ModifierMask (constraint_mod); } - static void set_trim_contents_modifier (guint); + static void set_slip_contents_modifier (guint); /** @return Modifier mask to move contents rather than region bounds during trim; */ - static ModifierMask trim_contents_modifier () { return ModifierMask (trim_contents_mod); } + static ModifierMask slip_contents_modifier () { return ModifierMask (slip_contents_mod); } static void set_trim_overlap_modifier (guint); /** @return Modifier mask to remove region overlaps during trim; */ @@ -98,7 +98,7 @@ public: static ModifierMask note_size_relative_modifier () { return ModifierMask (note_size_relative_mod); } private: static guint constraint_mod; - static guint trim_contents_mod; + static guint slip_contents_mod; static guint trim_overlap_mod; static guint trim_anchored_mod; static guint fine_adjust_mod; diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index 62ddb33e6e..0e3d585342 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -563,6 +563,21 @@ public: ++row; col = 1; + /* slip_contents */ + set_popdown_strings (_slip_contents_combo, dumb); + _slip_contents_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::slip_contents_modifier_chosen)); + Gtkmm2ext::UI::instance()->set_tip (_slip_contents_combo, + (string_compose (_("Recommended Setting: %1-%2%3"), Keyboard::primary_modifier_name (), Keyboard::tertiary_modifier_name (), restart_msg))); + + l = manage (left_aligned_label (_("Slip Contents using:"))); + l->set_name ("OptionsLabel"); + + t->attach (*l, col, col + 1, row, row + 1, FILL, FILL); + t->attach (_slip_contents_combo, col + 1, col + 2, row, row + 1, FILL | EXPAND, FILL); + + ++row; + col = 1; + /* constraint modifier */ set_popdown_strings (_constraint_modifier_combo, dumb); _constraint_modifier_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::constraint_modifier_chosen)); @@ -608,21 +623,6 @@ public: ++row; col = 1; - /* trim_contents */ - set_popdown_strings (_trim_contents_combo, dumb); - _trim_contents_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::trim_contents_modifier_chosen)); - Gtkmm2ext::UI::instance()->set_tip (_trim_contents_combo, - (string_compose (_("Recommended Setting: %1%2"), Keyboard::primary_modifier_name (), restart_msg))); - - l = manage (left_aligned_label (_("Trim contents using:"))); - l->set_name ("OptionsLabel"); - - t->attach (*l, col, col + 1, row, row + 1, FILL, FILL); - t->attach (_trim_contents_combo, col + 1, col + 2, row, row + 1, FILL | EXPAND, FILL); - - ++row; - col = 1; - /* anchored trim */ set_popdown_strings (_trim_anchored_combo, dumb); _trim_anchored_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::trim_anchored_modifier_chosen)); @@ -806,8 +806,8 @@ public: if (modifiers[x].modifier == (guint) ArdourKeyboard::push_points_modifier ()) { _push_points_combo.set_active_text (S_(modifiers[x].name)); } - if (modifiers[x].modifier == (guint) ArdourKeyboard::trim_contents_modifier ()) { - _trim_contents_combo.set_active_text (S_(modifiers[x].name)); + if (modifiers[x].modifier == (guint) ArdourKeyboard::slip_contents_modifier ()) { + _slip_contents_combo.set_active_text (S_(modifiers[x].name)); } if (modifiers[x].modifier == (guint) ArdourKeyboard::trim_anchored_modifier ()) { _trim_anchored_combo.set_active_text (S_(modifiers[x].name)); @@ -940,13 +940,13 @@ private: } } - void trim_contents_modifier_chosen () + void slip_contents_modifier_chosen () { - string const txt = _trim_contents_combo.get_active_text(); + string const txt = _slip_contents_combo.get_active_text(); for (int i = 0; modifiers[i].name; ++i) { if (txt == S_(modifiers[i].name)) { - ArdourKeyboard::set_trim_contents_modifier (modifiers[i].modifier); + ArdourKeyboard::set_slip_contents_modifier (modifiers[i].modifier); break; } } @@ -1052,7 +1052,7 @@ private: ArdourKeyboard::set_push_points_modifier (Keyboard::PrimaryModifier | Keyboard::Level4Modifier); /* when beginning a trim */ - ArdourKeyboard::set_trim_contents_modifier (Keyboard::PrimaryModifier); + ArdourKeyboard::set_slip_contents_modifier (Keyboard::PrimaryModifier | Keyboard::TertiaryModifier); ArdourKeyboard::set_trim_anchored_modifier (Keyboard::PrimaryModifier | Keyboard::TertiaryModifier); ArdourKeyboard::set_note_size_relative_modifier (Keyboard::TertiaryModifier); // XXX better: 2ndary @@ -1085,7 +1085,7 @@ private: ComboBoxText _snap_modifier_combo; ComboBoxText _snap_delta_combo; ComboBoxText _constraint_modifier_combo; - ComboBoxText _trim_contents_combo; + ComboBoxText _slip_contents_combo; ComboBoxText _trim_overlap_combo; ComboBoxText _trim_anchored_combo; ComboBoxText _trim_jump_combo;