new code to support creating skip markers
This commit is contained in:
parent
4130513689
commit
9331aa69bd
@ -4463,6 +4463,7 @@ RangeMarkerBarDrag::start_grab (GdkEvent* event, Gdk::Cursor *)
|
||||
}
|
||||
|
||||
switch (_operation) {
|
||||
case CreateSkipMarker:
|
||||
case CreateRangeMarker:
|
||||
case CreateTransportMarker:
|
||||
case CreateCDMarker:
|
||||
@ -4489,6 +4490,9 @@ RangeMarkerBarDrag::motion (GdkEvent* event, bool first_move)
|
||||
ArdourCanvas::Rectangle *crect;
|
||||
|
||||
switch (_operation) {
|
||||
case CreateSkipMarker:
|
||||
crect = _editor->range_bar_drag_rect;
|
||||
break;
|
||||
case CreateRangeMarker:
|
||||
crect = _editor->range_bar_drag_rect;
|
||||
break;
|
||||
@ -4506,7 +4510,7 @@ RangeMarkerBarDrag::motion (GdkEvent* event, bool first_move)
|
||||
|
||||
framepos_t const pf = adjusted_current_frame (event);
|
||||
|
||||
if (_operation == CreateRangeMarker || _operation == CreateTransportMarker || _operation == CreateCDMarker) {
|
||||
if (_operation == CreateSkipMarker || _operation == CreateRangeMarker || _operation == CreateTransportMarker || _operation == CreateCDMarker) {
|
||||
framepos_t grab = grab_frame ();
|
||||
_editor->snap_to (grab);
|
||||
|
||||
@ -4562,17 +4566,24 @@ RangeMarkerBarDrag::finished (GdkEvent* event, bool movement_occurred)
|
||||
_drag_rect->hide();
|
||||
|
||||
switch (_operation) {
|
||||
case CreateSkipMarker:
|
||||
case CreateRangeMarker:
|
||||
case CreateCDMarker:
|
||||
{
|
||||
_editor->begin_reversible_command (_("new range marker"));
|
||||
XMLNode &before = _editor->session()->locations()->get_state();
|
||||
_editor->session()->locations()->next_available_name(rangename,"unnamed");
|
||||
if (_operation == CreateCDMarker) {
|
||||
if (_operation == CreateSkipMarker) {
|
||||
_editor->begin_reversible_command (_("new skip marker"));
|
||||
_editor->session()->locations()->next_available_name(rangename,_("skip"));
|
||||
flags = Location::IsRangeMarker | Location::IsSkip;
|
||||
_editor->range_bar_drag_rect->hide();
|
||||
} else if (_operation == CreateCDMarker) {
|
||||
_editor->session()->locations()->next_available_name(rangename, _("CD"));
|
||||
_editor->begin_reversible_command (_("new CD marker"));
|
||||
flags = Location::IsRangeMarker | Location::IsCDMarker;
|
||||
_editor->cd_marker_bar_drag_rect->hide();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
_editor->begin_reversible_command (_("new skip marker"));
|
||||
_editor->session()->locations()->next_available_name(rangename, _("unnamed"));
|
||||
flags = Location::IsRangeMarker;
|
||||
_editor->range_bar_drag_rect->hide();
|
||||
}
|
||||
@ -4608,7 +4619,7 @@ RangeMarkerBarDrag::finished (GdkEvent* event, bool movement_occurred)
|
||||
/* didn't drag, but mark is already created so do
|
||||
* nothing */
|
||||
|
||||
} else { /* operation == CreateRangeMarker */
|
||||
} else { /* operation == CreateRangeMarker || CreateSkipMarker */
|
||||
|
||||
|
||||
framepos_t start;
|
||||
|
@ -991,6 +991,7 @@ class RangeMarkerBarDrag : public Drag
|
||||
{
|
||||
public:
|
||||
enum Operation {
|
||||
CreateSkipMarker,
|
||||
CreateRangeMarker,
|
||||
CreateTransportMarker,
|
||||
CreateCDMarker
|
||||
|
Loading…
Reference in New Issue
Block a user