13
0

new code to support creating skip markers

This commit is contained in:
Paul Davis 2014-09-17 09:39:29 -04:00
parent 4130513689
commit 9331aa69bd
2 changed files with 19 additions and 7 deletions

View File

@ -4463,6 +4463,7 @@ RangeMarkerBarDrag::start_grab (GdkEvent* event, Gdk::Cursor *)
} }
switch (_operation) { switch (_operation) {
case CreateSkipMarker:
case CreateRangeMarker: case CreateRangeMarker:
case CreateTransportMarker: case CreateTransportMarker:
case CreateCDMarker: case CreateCDMarker:
@ -4489,6 +4490,9 @@ RangeMarkerBarDrag::motion (GdkEvent* event, bool first_move)
ArdourCanvas::Rectangle *crect; ArdourCanvas::Rectangle *crect;
switch (_operation) { switch (_operation) {
case CreateSkipMarker:
crect = _editor->range_bar_drag_rect;
break;
case CreateRangeMarker: case CreateRangeMarker:
crect = _editor->range_bar_drag_rect; crect = _editor->range_bar_drag_rect;
break; break;
@ -4506,7 +4510,7 @@ RangeMarkerBarDrag::motion (GdkEvent* event, bool first_move)
framepos_t const pf = adjusted_current_frame (event); 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 (); framepos_t grab = grab_frame ();
_editor->snap_to (grab); _editor->snap_to (grab);
@ -4562,17 +4566,24 @@ RangeMarkerBarDrag::finished (GdkEvent* event, bool movement_occurred)
_drag_rect->hide(); _drag_rect->hide();
switch (_operation) { switch (_operation) {
case CreateSkipMarker:
case CreateRangeMarker: case CreateRangeMarker:
case CreateCDMarker: case CreateCDMarker:
{ {
_editor->begin_reversible_command (_("new range marker"));
XMLNode &before = _editor->session()->locations()->get_state(); XMLNode &before = _editor->session()->locations()->get_state();
_editor->session()->locations()->next_available_name(rangename,"unnamed"); if (_operation == CreateSkipMarker) {
if (_operation == CreateCDMarker) { _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; flags = Location::IsRangeMarker | Location::IsCDMarker;
_editor->cd_marker_bar_drag_rect->hide(); _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; flags = Location::IsRangeMarker;
_editor->range_bar_drag_rect->hide(); _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 /* didn't drag, but mark is already created so do
* nothing */ * nothing */
} else { /* operation == CreateRangeMarker */ } else { /* operation == CreateRangeMarker || CreateSkipMarker */
framepos_t start; framepos_t start;

View File

@ -991,6 +991,7 @@ class RangeMarkerBarDrag : public Drag
{ {
public: public:
enum Operation { enum Operation {
CreateSkipMarker,
CreateRangeMarker, CreateRangeMarker,
CreateTransportMarker, CreateTransportMarker,
CreateCDMarker CreateCDMarker