Commit graph

1009 commits

Author SHA1 Message Date
Paul Davis
23aa663f9d when doing a ripple-all drag, move relevant markers during the drag too
Note that this is purely GUI-level: the ARDOUR::Locations are changed at the end of the drag
in Editor::ripple_marks()
2021-08-13 12:51:28 -06:00
Paul Davis
140c5e818f somewhat simplify ripple-all by just grabbing all regions-at-or-after as the drag starts.
This means that we actually explicitly reposition all regions as part of the drag, and do not need to call
Editor::do_ripple(). We do still need to call Editor::ripple_marks() though
2021-08-13 12:51:28 -06:00
Paul Davis
7afc45ac5c helpful comment 2021-08-13 12:51:28 -06:00
Paul Davis
a1ef870866 prevent ripple drag from passing earlier region starts 2021-08-13 12:51:28 -06:00
Paul Davis
311db08cc3 manual fixups for rebase-on-master issues 2021-08-13 12:51:28 -06:00
Paul Davis
a95b1d2cd1 for RegionMotionDrag, set _earliest_time_limit if rippling (not yet used) 2021-08-13 12:51:28 -06:00
Paul Davis
b04ea33f18 move Drag::_earliest_time_limit to be protected, not private 2021-08-13 12:51:27 -06:00
Paul Davis
fbd6c7eaee add earliest_time_limit for Drag class 2021-08-13 12:51:27 -06:00
Paul Davis
ac1d5bac0a improve rippling of marks to include any in the gap between the primary-dragged region and the one before it 2021-08-13 12:51:27 -06:00
Paul Davis
fc5143772b fix deadlock-inducing failure-to-thaw during region drag (no copy) 2021-08-13 12:51:27 -06:00
Paul Davis
1ccf272d58 ripple-all now moves markers too 2021-08-13 12:51:27 -06:00
Paul Davis
ddbe0747a9 add whitespace 2021-08-13 12:51:27 -06:00
Paul Davis
93982614c4 remove debug output 2021-08-13 12:51:27 -06:00
Paul Davis
ff85496b03 we should clear property changes recursively for a region drag, not just toplevel properties 2021-08-13 12:51:27 -06:00
Paul Davis
989408626d at end of no-copy region drag, do ripple if appropriate 2021-08-13 12:51:27 -06:00
Paul Davis
6896f7228d fill ripple-excluded region container (non-copy drag) 2021-08-13 12:51:27 -06:00
Paul Davis
4a1d09d474 determine potential ripple range for non-copy drag 2021-08-13 12:51:27 -06:00
Paul Davis
6efbcf1ff7 add variables to track potential ripple at end of drag (no-copy) 2021-08-13 12:51:27 -06:00
Paul Davis
741a86ccf6 add container for ripple-excluded regions (no-copy drag) 2021-08-13 12:51:27 -06:00
Paul Davis
d2ebc58575 at end of copy-region drag, potentially do ripple 2021-08-13 12:51:27 -06:00
Paul Davis
76de8ab3f9 fill ripple-excluded regions container 2021-08-13 12:51:27 -06:00
Paul Davis
04c03199dc determine scope of potential end-of-drag ripple 2021-08-13 12:51:27 -06:00
Paul Davis
283e2103ba add variables to determine scope of potential ripple at end of drag 2021-08-13 12:51:27 -06:00
Paul Davis
7bd03b68ee add container for regions to be excluded from ripple 2021-08-13 12:51:27 -06:00
Paul Davis
3e6de18919 move point at which to-be-rerippled regionviews are collected in a RegionMotionDrag 2021-08-13 12:51:27 -06:00
Paul Davis
27a906444a clarify comment 2021-08-13 12:51:27 -06:00
Paul Davis
e3c7ead943 no cross-track region drags in any ripple mode 2021-08-13 12:51:27 -06:00
Paul Davis
0c77a35178 completely remove RegionRippleDrag, and merge Editor::add_region(_copy,}_drag() into one method 2021-08-13 12:51:27 -06:00
Paul Davis
9d54bb08e7 remove almost all of RegionRippleDrag, collapsing down to just collecting additional RegionViews that need to be moved during the drag 2021-08-13 12:51:27 -06:00
Paul Davis
963d2b6906 use Playlist::rdiff_and_add_command() rather than explicit code 2021-08-13 12:51:27 -06:00
Paul Davis
90e4adfed1 ripple drag never allows y motion 2021-08-13 12:51:27 -06:00
Paul Davis
eac366ec8e remove RegionRippleDrag::allow_moves_across_tracks since this was already unconditionally set to false
It was also commented "rippling across all tracks is the future", and created notable technical debt
2021-08-13 12:51:27 -06:00
Paul Davis
5c830233ec implement ripple-all via select-all for selection drags 2021-08-13 12:51:27 -06:00
Paul Davis
636f1331e8 stop using ripple callback API, add Editor::should_ripple() and Editor::do_ripple() to manage rippling 2021-08-13 12:51:27 -06:00
Paul Davis
0e2bd5383c GUI changes to follow new Playlist::ripple() API
Current ripple callback does nothing at all
2021-08-13 12:51:27 -06:00
Ben Loftis
9635aca923 Slip Contents Drag: regions should draw transparently while dragging, so you can line-up transients 2021-08-06 08:29:42 -05:00
Ben Loftis
45bd2c47d8 Brush Drag: refactor Brush-drag into its own Drag class (operation is still weird though) 2021-06-17 10:56:30 -05:00
Ben Loftis
69af0e6964 Abort a copy-drag in the case where it would result in a copy at the same location
also code cleanup: clear_draggingview_list() avoids duplicated code
2021-06-17 10:56:30 -05:00
Ben Loftis
87ecc9b4ca Slip Contents Drag: fix undo 2021-06-17 10:56:30 -05:00
Ben Loftis
f281e7e3c3 Slip Contents Drag: disambiguate Slip Contents from prior Contents Trim 2021-06-17 10:56:30 -05:00
Ben Loftis
3d8bccb508 Slip Contents Drag: remove ContentsTrim modifier from the region boundaries
*now that you can grab "anywhere" in the region, trim edges are inferior because they are hard to hit
*modifier had to change anyway (since CTRL is used as a copy-drag on both mac and win), so that invalidates prior muscle memory
*potentially frees up modifier on the trim edge for some other purpose (anchored_trim)
2021-06-17 10:56:27 -05:00
Ben Loftis
fea3fb9e71 Slip Contents Drag: add ContentsDrag 2021-06-17 10:56:22 -05:00
Ben Loftis
c62b6e0e3e Control Points should not obey Lock Edit, which was intended to lock regions and notes at the time where they were recorded.
Control Points should ignore x_constraint which is set in Drag::motion and potentially other places.
The only thing that should prevent CP sliding is can_slide which is false for the points at the ends of a region.
2021-06-14 11:51:16 -05:00
Paul Davis
232af15b51 fix position of region cue markers during drag and after when region position is not zero 2021-05-25 14:01:30 -06:00
Paul Davis
54e0b7f230 renaming cue markers (via dbl-click) 2021-05-24 20:23:06 -06:00
Paul Davis
ab2357dfa1 implement dragging for region/cue markers 2021-05-24 12:28:19 -06:00
Paul Davis
2016710865 skeleton for RegionMarkerDrag 2021-05-24 09:12:19 -06:00
Robin Gareus
f1fe1c7066
Amend 445f9a51bf 2021-05-23 23:22:18 +02:00
Robin Gareus
445f9a51bf
Fix ripple undo/redo
Ripple edit undo/redo needs a "recursive diff" of all regions
in the playlist. To work properly owned changes have to be
cleared first, previously unrelated edits were be collected too.

This includes a more consistent version of
7a89d56009 using rdiff() instead of explicitly
saving region diffs.
2021-05-23 17:42:33 +02:00
Robin Gareus
fd3220c3d7
Set uninitialized variable (fix playhead dragging) 2021-05-21 17:57:56 +02:00