13
0
Commit Graph

307 Commits

Author SHA1 Message Date
48ed5be776 skeleton for clip start/end editing 2024-11-12 18:54:41 -07:00
01068fe306 further adventures in drag-refactoring do that LineDrag can be used in MidiCueEditor also 2024-10-17 07:44:32 -06:00
2afdeb519f refactor rubberband drags to take a functor for the no-drag condition
Also move code for adding automation line control points into automation line, rather
than in AutomationTimeAxisView (some work still required to finalize this)
2024-10-17 07:44:32 -06:00
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
56ce9c33c0 renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine 2024-10-17 07:44:31 -06:00
90c8726c6d wideranging changes to get automation editing working in cue editor 2024-10-17 07:44:31 -06:00
afa15a0061 get velocity editing working in both the cue editor and MIDI region views
Quite a bit of hairy coordinate system stuff in here that ought to be commented more
clearly
2024-10-17 07:44:31 -06:00
54fdf90cc2 lots of detailed fixes to get lollipops in tracks working again, post re-factor 2024-10-17 07:44:31 -06:00
c97f4f4016 various changes to editor drag code to correctly use a bounding item 2024-10-17 07:44:30 -06:00
96ccb96b3b redesign drag API to provide a bounding item, not just "trackview only"
This allows rubberband drags on both the main editor and the separate piano roll to wokr
correctly.
2024-10-17 07:44:30 -06:00
14b95116e1 move various action registry stuff into EditingContext 2024-10-17 07:44:30 -06:00
33298a0ba0 get region-create drags working and no crashes (nut also no note) for note-drags 2024-10-17 07:44:29 -06:00
a550b6482f start using the now-compilable MidiView
Nothing yet derives from this, but MIDI display items and drags
do use it.
2024-10-17 07:44:29 -06:00
dee8e920e6 editing refactoring, the drag part 2024-10-17 07:44:29 -06:00
6e6322b315
Doxygen: fix explicit link request to 'motion' could not be resolved 2024-05-27 20:13:55 +02:00
067a124fd1
Suspend signal emission of Locations during Drag
This significantly speeds up Location Drag/motion
2023-12-08 21:48:23 +01:00
91fbb1c65b first steps towards improving straight line drags for velocity 2023-10-27 11:50:15 -06:00
4a8dc04f14
Remove ScrubDrag and vari-speed based fake-scrubbing 2023-10-05 21:53:39 +02:00
764ed125a4 region gain line freehand draw: ensure drawn line is above waveform 2023-10-02 12:04:57 -06:00
b2bb8e9bac move (empty) Drag destructor into source file and add DEBUG_TRACE 2023-09-30 11:09:58 -06:00
df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
67d9fa885a use mid-drag key events to allow Alt to force a line break 2023-07-10 12:22:16 -06:00
a14c534d16 dragging: add possibility of handling key events mid-drag
Currently only called from a canvas automation track event handler.
2023-07-10 12:21:27 -06:00
6453049c0a automation drawing: add point at grab start & use new ControlList API for speed 2023-07-10 11:20:47 -06:00
c584bfd374 automation drawing: thinning does not work well with snapped-drawn lines
Also, adding points to a ControlList can fail and that's OK
2023-07-09 22:10:18 -06:00
0a0a882f5a snapping, straight lines, and merge drawn points to list for auto draw 2023-07-09 20:42:09 -06:00
e0c24f5bcf automation drawing: stay in your lane and keep moving in the same direction 2023-07-09 18:12:08 -06:00
86d5e2472c automation drawing: we have the squiggly 2023-07-09 17:39:32 -06:00
78bca64a81 fix (and maybe break) two Drag classes that used the wrong name for setup_pointer_offset()
This might have unexplored consequences
2023-07-09 17:39:11 -06:00
94f413c399 basic empty skeleton for automation draw drag 2023-07-09 16:33:16 -06:00
01381dad77 lollis: remove unnecessary drag object member 2023-06-26 14:18:18 -06:00
f7130f5c02 lollipop drag: move all selected notes 2023-06-26 14:18:18 -06:00
cf7ba80fc1 the basics of lollipop dragging 2023-06-26 14:18:18 -06:00
2977205f3a add skeleton for lollipop drags 2023-06-26 14:18:18 -06:00
72850d456f implement time-stretch from left of region
Make click & drag in the left-hand half of a region with the Timestretch
tool stretch the region on its left, leaving the end position of the new
time-stretched region in the same place as the end of the original.
2023-06-09 17:57:52 +01:00
04d50ab880
Fix mouse edit-point cursor when dragging
Editor::motion_handler() only updates the snap-cursor
when no drags are active. While dragging, Drag::motion is
responsible to set the cursor accordingly.

In many cases the snap-cursor simply remained stuck at
the most recent position. Since in many cases
(e.g. RubberbandSelectDrag) it makes no sense to show the
cursor, so Drag::start_grab now hides the cursor by default.

This also fixes cases where the cursor is shown, but
was displayed in the wrong location.
2023-06-07 02:38:39 +02:00
921b4aaa75
Allow to drag time selection markers 2023-06-01 21:37:40 +02:00
c669ff58e5
Cleanup, fix Wunused-private-field 2023-05-22 22:29:42 +02:00
ca5e56f98c tempo mapping: MappingTwist drag should differentiate between ramped and constant twist
TODO:  probably break these into separate ::Drag classes
2023-05-22 13:33:03 -05:00
9fa8e257a6 tempo mapping: Mapping Drags should inhibit horizontal autoscroll 2023-05-22 13:32:38 -05:00
a258b82ce9 tweak behavior and naming of tempo-map drags:
* correctly handle clicks on the immediate right or left of a beat line
* prefer Mid-Twist and End-Stretch terminology over Twist and Linear
* static-tempo vs ramped-tempo is orthogonal to mid- and end- drags (TODO)
2023-05-04 09:33:08 -05:00
88e4b40857 remove concept/implementation of a mapping stretch drag (aka "half twist")
This concept proved to be impossible.
2023-04-13 17:50:41 -06:00
c10b265333 tempo mapping: various tweaks and improvements to workflow/Ux 2023-04-13 17:47:34 -06:00
57398b1e5e tempo mappoing: use actual mouse cursors not canvas item cursors
Also some changes to attempt to do "half-twist" that will be removed soon.
2023-04-07 12:56:57 -06:00
dd542b8f4d
Use ARDOUR::PlaylistSet instead of local typedefs 2023-04-06 02:13:51 +02:00
0aea2a2ef8 tempo twisting: GUI improvements, including undo/redo logic 2023-03-24 14:19:16 -06:00
77cefd7721 new tempo mapping drag objects (API and implementation) 2023-03-24 14:19:16 -06:00
6d5273e514 tempo marker drag: change type of stored bpm 2023-03-24 14:19:16 -06:00
d61a741e4b mapping bar: some mouse handling 2023-03-24 14:19:16 -06:00
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00