mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-05 13:15:44 +01:00
[Summary] Refactored CUT tool
[Details] CUT tool will be activated only above region. Otherwise (above empty canvas) it will perform like ObjectTool [Reviewed by QA] IMaximenko
This commit is contained in:
parent
11e2381924
commit
4bbfb3b324
4 changed files with 52 additions and 19 deletions
|
|
@ -885,7 +885,18 @@ Editor::set_entered_regionview (RegionView* rv)
|
|||
|
||||
if (entered_regionview != 0) {
|
||||
entered_regionview->entered (internal_editing ());
|
||||
}
|
||||
|
||||
if (mouse_mode == MouseCut) {
|
||||
Gdk::Cursor* cursor = which_mode_cursor ();
|
||||
set_canvas_cursor (cursor);
|
||||
}
|
||||
|
||||
} else {
|
||||
if (mouse_mode == MouseCut) {
|
||||
Gdk::Cursor* cursor = which_mode_cursor ();
|
||||
set_canvas_cursor (cursor);
|
||||
}
|
||||
}
|
||||
|
||||
if (!_all_region_actions_sensitized && _last_region_menu_was_main) {
|
||||
/* This RegionView entry might have changed what region actions
|
||||
|
|
@ -4839,12 +4850,12 @@ Editor::get_regions_from_selection_and_mouse (framepos_t pos)
|
|||
{
|
||||
RegionSelection regions;
|
||||
|
||||
regions = selection->regions;
|
||||
|
||||
if (entered_regionview ) {
|
||||
regions.add (entered_regionview);
|
||||
if (selection->selected (entered_regionview) ) {
|
||||
regions = selection->regions;
|
||||
}
|
||||
|
||||
|
||||
regions.add (entered_regionview);
|
||||
|
||||
// Greg Zharun: Waves Tracks PRD does not say this.
|
||||
// So let's skip this.
|
||||
//if ( regions.empty() ) {
|
||||
|
|
|
|||
|
|
@ -1223,9 +1223,13 @@ Editor::which_mode_cursor () const
|
|||
break;
|
||||
|
||||
case MouseCut:
|
||||
mode_cursor = _cursors->scissors;
|
||||
break;
|
||||
|
||||
if (entered_regionview) {
|
||||
mode_cursor = _cursors->scissors;
|
||||
} else {
|
||||
mode_cursor = which_grabber_cursor();
|
||||
}
|
||||
break;
|
||||
|
||||
case MouseObject:
|
||||
/* don't use mode cursor, pick a grabber cursor based on the item */
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -5752,6 +5752,9 @@ RegionCutDrag::finished (GdkEvent*, bool)
|
|||
return;
|
||||
}
|
||||
|
||||
// clear selection before cutting
|
||||
_editor->get_selection().clear_regions();
|
||||
|
||||
_editor->split_regions_at (pos, rs);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -926,16 +926,31 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
|||
case RegionItem:
|
||||
case FadeInHandleItem:
|
||||
case FadeOutHandleItem:
|
||||
case LeftFrameHandle:
|
||||
case RightFrameHandle:
|
||||
case FeatureLineItem:
|
||||
case RegionViewNameHighlight:
|
||||
case RegionViewName:
|
||||
case StreamItem:
|
||||
case AutomationTrackItem:
|
||||
_drags->set (new RegionCutDrag (this, item, canvas_event_sample (event)), event, current_canvas_cursor);
|
||||
if (entered_regionview) {
|
||||
_drags->set (new RegionCutDrag (this, item, canvas_event_sample (event)), event, current_canvas_cursor);
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case StreamItem:
|
||||
|
||||
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::PrimaryModifier) &&
|
||||
!Keyboard::modifier_state_contains (event->button.state, Keyboard::TertiaryModifier) ) {
|
||||
|
||||
selection->clear_regions();
|
||||
selection->clear_time ();
|
||||
selection->clear_points ();
|
||||
selection->clear_lines ();
|
||||
}
|
||||
|
||||
_drags->set (new EditorRubberbandSelectDrag (this, item), event);
|
||||
|
||||
break;
|
||||
case LeftFrameHandle:
|
||||
case RightFrameHandle:
|
||||
case FeatureLineItem:
|
||||
case AutomationTrackItem:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -1898,7 +1913,7 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
|
|||
|
||||
case SelectionItem:
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -1962,9 +1977,9 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent*, ItemType item_type)
|
|||
if (rect) {
|
||||
rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_InactiveFadeHandle());
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case AutomationTrackItem:
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue