Tidy up region drag move code a bit.
[ardour.git] / gtk2_ardour / editor_actions.cc
index f4a8e81b9c66f1b54121807a089b679039aeab7b..e8eeb4d5727f03ebdaa8f5f7e0fdea037e1b55c2 100644 (file)
@@ -126,7 +126,7 @@ Editor::register_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-boundary", _("Playhead to Previous Region Boundary"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_previous_region_boundary), true));
        ActionManager::session_sensitive_actions.push_back (act);
-       act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-boundary-noselection", _("Playhead to Previous Region Boundary (No Track Selection"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_previous_region_boundary), false));
+       act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-boundary-noselection", _("Playhead to Previous Region Boundary (No Track Selection)"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_previous_region_boundary), false));
        ActionManager::session_sensitive_actions.push_back (act);
 
        act = ActionManager::register_action (editor_actions, "playhead-to-next-region-start", _("Playhead to Next Region Start"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_next_region_point), playhead_cursor, RegionPoint (Start)));
@@ -143,11 +143,11 @@ Editor::register_actions ()
        act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-sync", _("Playhead to Previous Region Sync"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_previous_region_point), playhead_cursor, RegionPoint (SyncPoint)));
        ActionManager::session_sensitive_actions.push_back (act);
 
-       act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary", _("to Next Region Boundary"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_next_region_boundary), true));
+       act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary", _("To Next Region Boundary"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_next_region_boundary), true));
        ActionManager::session_sensitive_actions.push_back (act);
-       act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary-noselection", _("to Next Region Boundary (No Track Selection)"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_next_region_boundary), false));
+       act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary-noselection", _("To Next Region Boundary (No Track Selection)"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_next_region_boundary), false));
        ActionManager::session_sensitive_actions.push_back (act);
-       act = ActionManager::register_action (editor_actions, "selected-marker-to-previous-region-boundary", _("to Previous Region Boundary"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_previous_region_boundary), true));
+       act = ActionManager::register_action (editor_actions, "selected-marker-to-previous-region-boundary", _("To Previous Region Boundary"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_previous_region_boundary), true));
        ActionManager::session_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "selected-marker-to-previous-region-boundary-noselection", _("to Previous Region Boundary (No Track Selection)"), sigc::bind (sigc::mem_fun(*this, &Editor::selected_marker_to_previous_region_boundary), false));
        ActionManager::session_sensitive_actions.push_back (act);
@@ -200,9 +200,9 @@ Editor::register_actions ()
        act = ActionManager::register_action (editor_actions, "select-all-in-loop-range", _("Select All in Loop Range"), sigc::mem_fun(*this, &Editor::select_all_selectables_using_loop));
        ActionManager::session_sensitive_actions.push_back (act);
 
-       act = ActionManager::register_action (editor_actions, "select-next-route", _("Select Next Track/Bus"), sigc::mem_fun(*this, &Editor::select_next_route));
+       act = ActionManager::register_action (editor_actions, "select-next-route", _("Select Next Track or Bus"), sigc::mem_fun(*this, &Editor::select_next_route));
        ActionManager::session_sensitive_actions.push_back (act);
-       act = ActionManager::register_action (editor_actions, "select-prev-route", _("Select Previous Track/Bus"), sigc::mem_fun(*this, &Editor::select_prev_route));
+       act = ActionManager::register_action (editor_actions, "select-prev-route", _("Select Previous Track or Bus"), sigc::mem_fun(*this, &Editor::select_prev_route));
        ActionManager::session_sensitive_actions.push_back (act);
 
        act = ActionManager::register_action (editor_actions, "track-record-enable-toggle", _("Toggle Record Enable"), sigc::mem_fun(*this, &Editor::toggle_record_enable));
@@ -476,6 +476,15 @@ Editor::register_actions ()
        act = ActionManager::register_action (editor_actions, "mute-unmute-region", _("Mute/Unmute Region"), sigc::mem_fun(*this, &Editor::kbd_mute_unmute_region));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::region_selection_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (editor_actions, "snap-regions-to-grid", _("Snap Regions to Grid"), sigc::mem_fun(*this, &Editor::snap_regions_to_grid));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::region_selection_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (editor_actions, "close-region-gaps", _("Close Region Gaps"), sigc::mem_fun(*this, &Editor::close_region_gaps));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::region_selection_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (editor_actions, "place-transient", _("Place Transient"), sigc::mem_fun(*this, &Editor::place_transient));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::region_selection_sensitive_actions.push_back (act);      
 
        undo_action = act = ActionManager::register_action (editor_actions, "undo", _("Undo"), sigc::bind (sigc::mem_fun(*this, &Editor::undo), 1U));
        ActionManager::session_sensitive_actions.push_back (act);
@@ -487,20 +496,28 @@ Editor::register_actions ()
        act = ActionManager::register_action (editor_actions, "export-range", _("Export Range"), sigc::mem_fun(*this, &Editor::export_range));
        ActionManager::session_sensitive_actions.push_back (act);
 
+       act = ActionManager::register_action (editor_actions, "separate-under-region", _("Separate Under Selected Regions"), sigc::mem_fun(*this, &Editor::separate_under_selected_regions));
+       ActionManager::session_sensitive_actions.push_back (act);
+
        act = ActionManager::register_action (editor_actions, "editor-separate", _("Separate"), sigc::mem_fun(*this, &Editor::separate_region_from_selection));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::mouse_edit_point_requires_canvas_actions.push_back (act);
+       
        act = ActionManager::register_action (editor_actions, "separate-from-punch", _("Separate Using Punch Range"), sigc::mem_fun(*this, &Editor::separate_region_from_punch));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::mouse_edit_point_requires_canvas_actions.push_back (act);
+       
        act = ActionManager::register_action (editor_actions, "separate-from-loop", _("Separate Using Loop Range"), sigc::mem_fun(*this, &Editor::separate_region_from_loop));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::mouse_edit_point_requires_canvas_actions.push_back (act);
+       
        act = ActionManager::register_action (editor_actions, "editor-crop", _("Crop"), sigc::mem_fun(*this, &Editor::crop_region_to_selection));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::mouse_edit_point_requires_canvas_actions.push_back (act);
+       
        act = ActionManager::register_action (editor_actions, "editor-cut", _("Cut"), sigc::mem_fun(*this, &Editor::cut));
        ActionManager::session_sensitive_actions.push_back (act);
+       
        /* Note: for now, editor-delete does the exact same thing as editor-cut */
        act = ActionManager::register_action (editor_actions, "editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::cut));
        ActionManager::session_sensitive_actions.push_back (act);
@@ -525,10 +542,6 @@ Editor::register_actions ()
        act = ActionManager::register_action (editor_actions, "toggle-rhythm-ferret", _("Rhythm Ferret..."), sigc::mem_fun(*this, &Editor::show_rhythm_ferret));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::region_selection_sensitive_actions.push_back (act);
-       act = ActionManager::register_action (editor_actions, "toggle-audio-connection-manager", _("Audio Connection Manager"), sigc::bind (sigc::mem_fun (*this, &Editor::show_global_port_matrix), ARDOUR::DataType::AUDIO));
-       ActionManager::session_sensitive_actions.push_back (act);
-       act = ActionManager::register_action (editor_actions, "toggle-midi-connection-manager", _("MIDI Connection Manager"), sigc::bind (sigc::mem_fun (*this, &Editor::show_global_port_matrix), ARDOUR::DataType::MIDI));
-       ActionManager::session_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "toggle-log-window", _("Log"),
                        sigc::mem_fun (ARDOUR_UI::instance(), &ARDOUR_UI::toggle_errors));
        ActionManager::session_sensitive_actions.push_back (act);
@@ -579,28 +592,28 @@ Editor::register_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
         ActionManager::track_selection_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "track-height-largest", _("Largest"), sigc::bind (
-                               sigc::mem_fun(*this, &Editor::set_track_height), TimeAxisView::hLargest));
+                               sigc::mem_fun(*this, &Editor::set_track_height), HeightLargest));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::track_selection_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "track-height-larger", _("Larger"), sigc::bind (
-                               sigc::mem_fun(*this, &Editor::set_track_height), TimeAxisView::hLarger));
+                               sigc::mem_fun(*this, &Editor::set_track_height), HeightLarger));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::track_selection_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "track-height-large", _("Large"), sigc::bind (
-                               sigc::mem_fun(*this, &Editor::set_track_height), TimeAxisView::hLarge));
+                               sigc::mem_fun(*this, &Editor::set_track_height), HeightLarge));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::track_selection_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "track-height-normal", _("Normal"), sigc::bind (
-                               sigc::mem_fun(*this, &Editor::set_track_height), TimeAxisView::hNormal));
+                               sigc::mem_fun(*this, &Editor::set_track_height), HeightNormal));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::track_selection_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "track-height-small", _("Small"), sigc::bind (
-                               sigc::mem_fun(*this, &Editor::set_track_height), TimeAxisView::hSmall));
+                               sigc::mem_fun(*this, &Editor::set_track_height), HeightSmall));
        ActionManager::track_selection_sensitive_actions.push_back (act);
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::track_selection_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "track-height-smaller", _("Smaller"), sigc::bind (
-                               sigc::mem_fun(*this, &Editor::set_track_height), TimeAxisView::hSmaller));
+                               sigc::mem_fun(*this, &Editor::set_track_height), HeightSmaller));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::track_selection_sensitive_actions.push_back (act);
 
@@ -637,6 +650,8 @@ Editor::register_actions ()
        mouse_select_button.set_name ("MouseModeButton");
        mouse_select_button.get_image ()->show ();
 
+       act = ActionManager::register_toggle_action (mouse_mode_actions, "set-mouse-mode-object-range", _("Link Object / Range Tools"), sigc::mem_fun (*this, &Editor::mouse_mode_object_range_toggled));
+       act->connect_proxy (join_object_range_button);
        join_object_range_button.set_image (*(manage (new Image (::get_icon ("tool_object_range")))));
        join_object_range_button.set_label ("");
        join_object_range_button.set_name ("MouseModeButton");
@@ -663,7 +678,7 @@ Editor::register_actions ()
        mouse_audition_button.set_name ("MouseModeButton");
        mouse_audition_button.get_image ()->show ();
 
-       act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Timefx Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseTimeFX));
+       act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Time FX Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseTimeFX));
        act->connect_proxy (mouse_timefx_button);
        mouse_timefx_button.set_image (*(manage (new Image (::get_icon("tool_stretch")))));
        mouse_timefx_button.set_label ("");
@@ -713,11 +728,23 @@ Editor::register_actions ()
        ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-timecode-minutes"), _("Snap to Timecode Minutes"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToTimecodeMinutes)));
        ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-seconds"), _("Snap to Seconds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToSeconds)));
        ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-minutes"), _("Snap to Minutes"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToMinutes)));
-       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-thirtyseconds"), _("Snap to Thirty Seconds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToAThirtysecondBeat)));
-       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-asixteenthbeat"), _("Snap to A Sixteenth Beat"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToASixteenthBeat)));
-       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-eighths"), _("Snap to Eighths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToAEighthBeat)));
-       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-quarters"), _("Snap to Quarters"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToAQuarterBeat)));
-       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-thirds"), _("Snap to Thirds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToAThirdBeat)));
+
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-thirtyseconds"), _("Snap to Thirty Seconds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv32)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-twentyeighths"), _("Snap to Twenty Eighths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv28)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-twentyfourths"), _("Snap to Twenty Fourths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv24)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-twentieths"), _("Snap to Twentieths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv20)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-asixteenthbeat"), _("Snap to Sixteenths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv16)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-fourteenths"), _("Snap to Fourteenths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv14)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-twelfths"), _("Snap to Tweflths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv12)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-tenths"), _("Snap to Tenths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv10)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-eighths"), _("Snap to Eighths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv8)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-sevenths"), _("Snap to Sevenths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv7)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-sixths"), _("Snap to Sixths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv6)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-fifths"), _("Snap to Fifths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv5)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-quarters"), _("Snap to Quarters"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv4)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-thirds"), _("Snap to Thirds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv3)));
+       ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-halves"), _("Snap to Halves"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv2)));
+
        ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-beat"), _("Snap to Beat"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeat)));
        ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-bar"), _("Snap to Bar"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBar)));
        ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-mark"), _("Snap to Mark"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToMark)));
@@ -947,7 +974,6 @@ Editor::toggle_logo_visibility ()
 RefPtr<RadioAction>
 Editor::snap_type_action (SnapType type)
 {
-
        const char* action = 0;
        RefPtr<Action> act;
 
@@ -970,21 +996,51 @@ Editor::snap_type_action (SnapType type)
        case Editing::SnapToMinutes:
                action = "snap-to-minutes";
                break;
-       case Editing::SnapToAThirtysecondBeat:
+       case Editing::SnapToBeatDiv32:
                action = "snap-to-thirtyseconds";
                break;
-       case Editing::SnapToASixteenthBeat:
+       case Editing::SnapToBeatDiv28:
+               action = "snap-to-twentyeighths";
+               break;
+       case Editing::SnapToBeatDiv24:
+               action = "snap-to-twentyfourths";
+               break;
+       case Editing::SnapToBeatDiv20:
+               action = "snap-to-twentieths";
+               break;
+       case Editing::SnapToBeatDiv16:
                action = "snap-to-asixteenthbeat";
                break;
-       case Editing::SnapToAEighthBeat:
+       case Editing::SnapToBeatDiv14:
+               action = "snap-to-fourteenths";
+               break;
+       case Editing::SnapToBeatDiv12:
+               action = "snap-to-twelfths";
+               break;
+       case Editing::SnapToBeatDiv10:
+               action = "snap-to-tenths";
+               break;
+       case Editing::SnapToBeatDiv8:
                action = "snap-to-eighths";
                break;
-       case Editing::SnapToAQuarterBeat:
+       case Editing::SnapToBeatDiv7:
+               action = "snap-to-sevenths";
+               break;
+       case Editing::SnapToBeatDiv6:
+               action = "snap-to-sixths";
+               break;
+       case Editing::SnapToBeatDiv5:
+               action = "snap-to-fifths";
+               break;
+       case Editing::SnapToBeatDiv4:
                action = "snap-to-quarters";
                break;
-       case Editing::SnapToAThirdBeat:
+       case Editing::SnapToBeatDiv3:
                action = "snap-to-thirds";
                break;
+       case Editing::SnapToBeatDiv2:
+               action = "snap-to-halves";
+               break;
        case Editing::SnapToBeat:
                action = "snap-to-beat";
                break;
@@ -1043,21 +1099,51 @@ Editor::cycle_snap_choice()
                set_snap_to (Editing::SnapToMinutes);
                break;
        case Editing::SnapToMinutes:
-               set_snap_to (Editing::SnapToAThirtysecondBeat);
+               set_snap_to (Editing::SnapToBeatDiv32);
+               break;
+       case Editing::SnapToBeatDiv32:
+               set_snap_to (Editing::SnapToBeatDiv28);
                break;
-       case Editing::SnapToAThirtysecondBeat:
-               set_snap_to (Editing::SnapToASixteenthBeat);
+       case Editing::SnapToBeatDiv28:
+                set_snap_to (Editing::SnapToBeatDiv24);
+                break;
+       case Editing::SnapToBeatDiv24:
+                set_snap_to (Editing::SnapToBeatDiv20);
+                break;
+       case Editing::SnapToBeatDiv20:
+                set_snap_to (Editing::SnapToBeatDiv16);
+                break;
+       case Editing::SnapToBeatDiv16:
+               set_snap_to (Editing::SnapToBeatDiv14);
                break;
-       case Editing::SnapToASixteenthBeat:
-               set_snap_to (Editing::SnapToAEighthBeat);
+       case Editing::SnapToBeatDiv14:
+                set_snap_to (Editing::SnapToBeatDiv12);
+                break;
+       case Editing::SnapToBeatDiv12:
+                set_snap_to (Editing::SnapToBeatDiv10);
+                break;
+       case Editing::SnapToBeatDiv10:
+                set_snap_to (Editing::SnapToBeatDiv8);
+                break;
+       case Editing::SnapToBeatDiv8:
+               set_snap_to (Editing::SnapToBeatDiv7);
                break;
-       case Editing::SnapToAEighthBeat:
-               set_snap_to (Editing::SnapToAQuarterBeat);
+       case Editing::SnapToBeatDiv7:
+                set_snap_to (Editing::SnapToBeatDiv6);
+                break;
+       case Editing::SnapToBeatDiv6:
+                set_snap_to (Editing::SnapToBeatDiv5);
+                break;
+       case Editing::SnapToBeatDiv5:
+                set_snap_to (Editing::SnapToBeatDiv4);
+                break;
+       case Editing::SnapToBeatDiv4:
+               set_snap_to (Editing::SnapToBeatDiv3);
                break;
-       case Editing::SnapToAQuarterBeat:
-               set_snap_to (Editing::SnapToAThirdBeat);
+       case Editing::SnapToBeatDiv3:
+               set_snap_to (Editing::SnapToBeatDiv2);
                break;
-       case Editing::SnapToAThirdBeat:
+       case Editing::SnapToBeatDiv2:
                set_snap_to (Editing::SnapToBeat);
                break;
        case Editing::SnapToBeat: