Revert to old Lock mode (still called Lock).

Also make midi notes obey the snap delta modifire
This commit is contained in:
nick_m 2015-05-19 03:27:50 +10:00
parent aac167a19f
commit dc50730059
7 changed files with 27 additions and 22 deletions

View File

@ -195,7 +195,7 @@ static const gchar *_edit_mode_strings[] = {
N_("Slide"),
N_("Splice"),
N_("Ripple"),
N_("Constrained"),
N_("Lock"),
0
};
@ -3171,7 +3171,7 @@ Editor::build_edit_mode_menu ()
edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Slide], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Slide)));
// edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Splice], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Splice)));
edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Ripple], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Ripple)));
edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Constrained], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Constrained)));
edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Lock], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Lock)));
set_size_request_to_display_given_text (edit_mode_selector, edit_mode_strings, COMBO_TRIANGLE_WIDTH, 2);
}
@ -3617,16 +3617,16 @@ Editor::cycle_edit_mode ()
switch (Config->get_edit_mode()) {
case Slide:
if (Profile->get_sae()) {
Config->set_edit_mode (Constrained);
Config->set_edit_mode (Lock);
} else {
Config->set_edit_mode (Ripple);
}
break;
case Splice:
case Ripple:
Config->set_edit_mode (Constrained);
Config->set_edit_mode (Lock);
break;
case Constrained:
case Lock:
Config->set_edit_mode (Slide);
break;
}

View File

@ -509,7 +509,7 @@ Editor::register_actions ()
// ActionManager::register_action (editor_actions, "set-edit-splice", _("Splice"), sigc::bind (sigc::mem_fun (*this, &Editor::set_edit_mode), Splice));
ActionManager::register_action (editor_actions, "set-edit-ripple", _("Ripple"), bind (mem_fun (*this, &Editor::set_edit_mode), Ripple));
ActionManager::register_action (editor_actions, "set-edit-slide", _("Slide"), sigc::bind (sigc::mem_fun (*this, &Editor::set_edit_mode), Slide));
ActionManager::register_action (editor_actions, "set-edit-constrained", S_("EditMode|Constrained"), sigc::bind (sigc::mem_fun (*this, &Editor::set_edit_mode), Constrained));
ActionManager::register_action (editor_actions, "set-edit-lock", S_("EditMode|Lock"), sigc::bind (sigc::mem_fun (*this, &Editor::set_edit_mode), Lock));
ActionManager::register_action (editor_actions, "cycle-edit-mode", _("Cycle Edit Mode"), sigc::mem_fun (*this, &Editor::cycle_edit_mode));
ActionManager::register_action (editor_actions, X_("SnapTo"), _("Snap to"));

View File

@ -401,21 +401,25 @@ Drag::motion_handler (GdkEvent* event, bool from_autoscroll)
/* just changed */
if (fabs (current_pointer_y() - _grab_y) > fabs (current_pointer_x() - _grab_x)) {
if ((event->motion.state & Gdk::BUTTON2_MASK) || Config->get_edit_mode() == Constrained) {
if ((event->motion.state & Gdk::BUTTON2_MASK) && Config->get_edit_mode() != Lock) {
_x_constrained = true;
_y_constrained = false;
}
_initially_vertical = true;
} else {
if ((event->motion.state & Gdk::BUTTON2_MASK) || Config->get_edit_mode() == Constrained) {
if ((event->motion.state & Gdk::BUTTON2_MASK) && Config->get_edit_mode() != Lock) {
_x_constrained = false;
_y_constrained = true;
}
_initially_vertical = false;
}
if ((event->motion.state & Gdk::BUTTON2_MASK) && Config->get_edit_mode() == Constrained) {
_x_constrained = false;
if (Config->get_edit_mode() == Lock) {
if (event->button.state & Gdk::BUTTON2_MASK) {
_x_constrained = false;
} else {
_x_constrained = true;
}
_y_constrained = false;
}
}
@ -635,7 +639,8 @@ RegionMotionDrag::compute_x_delta (GdkEvent const * event, framepos_t* pending_r
}
double dx = 0;
bool x_move_allowed = !_x_constrained;
bool const x_move_allowed = !_x_constrained;
if ((*pending_region_position != _last_frame_position) && x_move_allowed) {
@ -2389,7 +2394,7 @@ NoteResizeDrag::motion (GdkEvent* event, bool /*first_move*/)
MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(*r);
if (mrv) {
double sd = 0.0;
if (Keyboard::modifier_state_contains (event->button.state, Keyboard::TertiaryModifier)) {
if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::snap_delta_modifier())) {
sd = _snap_delta;
}
mrv->update_resizing (nb, at_front, _drags->current_pointer_x() - grab_x(), relative, sd);
@ -2406,7 +2411,7 @@ NoteResizeDrag::finished (GdkEvent* event, bool /*movement_occurred*/)
assert (nb);
MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(*r);
double sd = 0.0;
if (Keyboard::modifier_state_contains (event->button.state, Keyboard::TertiaryModifier)) {
if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::snap_delta_modifier())) {
sd = _snap_delta;
}
if (mrv) {

View File

@ -6960,7 +6960,7 @@ Editor::insert_time (
{
bool commit = false;
if (Config->get_edit_mode() == Constrained) {
if (Config->get_edit_mode() == Lock) {
return;
}
@ -7133,8 +7133,8 @@ Editor::cut_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt,
{
bool commit = false;
if (Config->get_edit_mode() == Constrained) {
error << (_("Cannot insert or delete time when in Constrained edit.")) << endmsg;
if (Config->get_edit_mode() == Lock) {
error << (_("Cannot insert or delete time when in Lock edit.")) << endmsg;
return;
}

View File

@ -352,7 +352,7 @@ namespace ARDOUR {
Slide,
Splice,
Ripple,
Constrained
Lock
};
enum RegionSelectionAfterSplit {

View File

@ -242,7 +242,7 @@ setup_enum_writer ()
REGISTER_ENUM (Slide);
REGISTER_ENUM (Splice);
REGISTER_ENUM (Ripple); // XXX do the old enum values have to stay in order?
REGISTER_ENUM (Constrained);
REGISTER_ENUM (Lock);
REGISTER (_EditMode);
/*
* Splice mode is undefined, undocumented, and basically fubar'ed

View File

@ -425,8 +425,8 @@ ARDOUR::string_to_edit_mode (string str)
return Slide;
} else if (str == _("Ripple")) {
return Ripple;
} else if (str == _("Constrained")) {
return Constrained;
} else if (str == _("Lock")) {
return Lock;
}
fatal << string_compose (_("programming error: unknown edit mode string \"%1\""), str) << endmsg;
abort(); /*NOTREACHED*/
@ -440,8 +440,8 @@ ARDOUR::edit_mode_to_string (EditMode mode)
case Slide:
return _("Slide");
case Constrained:
return _("Constrained");
case Lock:
return _("Lock");
case Ripple:
return _("Ripple");