Commit Graph

1095 Commits

Author SHA1 Message Date
Ben Loftis 72761734e8 region groups: more fixes for drag-copy and range-paste operations 2023-09-27 11:06:40 -05:00
Paul Davis d892614742 fix DEBUG_TRACE message about a drag 2023-09-25 11:01:22 -06:00
Robin Gareus 36f8d48e93
Add editing mode to select marker click behavior
So far this only adds actions, not a GUI dropdown or
context menu. See also f9a121ce9c
2023-09-13 03:16:24 +02:00
Paul Davis 28af3c2024 i like nullptr 2023-09-11 10:26:54 -06:00
Paul Davis fa78fe1f33 fix incorrect design of abort-tempo-map-edit operation 2023-09-11 10:26:54 -06:00
Paul Davis 734a62101f remove use of Tempo::active() from GUI
This has not been accessible in the GUI since 7.0.
2023-09-11 10:26:54 -06:00
Paul Davis 250174b16e don't bother locating at end of no-motion marker drag if using external sync 2023-09-07 14:23:08 -06:00
Paul Davis f9a121ce9c click (no drag) on markers locates there, unless using marker as edit point 2023-09-07 14:23:08 -06:00
Ben Loftis e5e40c751f
if user moves selection markers, convert selection to a timeline section 2023-09-05 23:08:30 +02:00
Robin Gareus cf9f9db48b
Set length of new percussive hits to 1 tick
This prevents overlap of successive hits.

Ardour 7 added a new duration select drop-down menu,
which defaults to "Auto" (musical grid) and removed
the special case when drawing percussive notes.
It was possible to accidentally create overlapping notes,
without the user being aware of doing so.
2023-09-04 23:26:54 +02:00
Ben Loftis b66e12610b arrangement ruler: create Section marker type, so we can customize it a bit 2023-08-29 23:02:05 -05:00
Ben Loftis 32b18073e8 more enforcement of left->right freehand drawing (fixes velocity drawing) 2023-08-27 10:43:47 -05:00
Paul Davis b15fa57017 freehand draw; use ensure_snap to force non-magnetic snap during drag (if snapping) 2023-08-19 13:39:27 -06:00
Paul Davis c8819d73c8 freehand draw: require left-to-right drawing 2023-08-19 13:39:27 -06:00
Paul Davis 5c423d3dda freehand draw: slight logic improvement for first move 2023-08-19 13:39:27 -06:00
Paul Davis 7c029f5f6a next iteration of changes to handle time domain bounces as undoable (GUI) 2023-08-14 23:42:08 -06:00
John Emmas 35c04d0ee7 Add a missing namespace specifier 2023-07-15 12:55:30 +01:00
Paul Davis df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
Paul Davis ac68fcb880 automation drawing: fix right-to-left free drawing 2023-07-10 14:39:23 -06:00
Paul Davis f6f1f3393d automation drawing: fatter line 2023-07-10 14:38:58 -06:00
Paul Davis d12aa315fc automation drawn: ensure the right-to-left drawn lines are ordered correctly 2023-07-10 14:23:39 -06:00
Paul Davis 9d5b6a78d5 automation drawing: better line color 2023-07-10 14:16:59 -06:00
Paul Davis 25d17e857f when free-drawing straight lines, allow retrograde motion 2023-07-10 13:42:25 -06:00
Paul Davis 67d9fa885a use mid-drag key events to allow Alt to force a line break 2023-07-10 12:22:16 -06:00
Paul Davis 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
Paul Davis 6453049c0a automation drawing: add point at grab start & use new ControlList API for speed 2023-07-10 11:20:47 -06:00
Paul Davis 7f653de3e2 automation drawing: don't draw staircases when there are no staircases 2023-07-09 22:14:38 -06:00
Paul Davis 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
Paul Davis 0a0a882f5a snapping, straight lines, and merge drawn points to list for auto draw 2023-07-09 20:42:09 -06:00
Paul Davis e0c24f5bcf automation drawing: stay in your lane and keep moving in the same direction 2023-07-09 18:12:08 -06:00
Paul Davis 86d5e2472c automation drawing: we have the squiggly 2023-07-09 17:39:32 -06:00
Paul Davis 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
Paul Davis 6743c09b4a change return type from ptr to reference for AutomationTimeAxis::base_item() 2023-07-09 17:37:22 -06:00
Paul Davis 94f413c399 basic empty skeleton for automation draw drag 2023-07-09 16:33:16 -06:00
Paul Davis 01381dad77 lollis: remove unnecessary drag object member 2023-06-26 14:18:18 -06:00
Paul Davis f7130f5c02 lollipop drag: move all selected notes 2023-06-26 14:18:18 -06:00
Paul Davis cf7ba80fc1 the basics of lollipop dragging 2023-06-26 14:18:18 -06:00
Paul Davis 2977205f3a add skeleton for lollipop drags 2023-06-26 14:18:18 -06:00
Colin Fletcher 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
Robin Gareus 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
Robin Gareus 921b4aaa75
Allow to drag time selection markers 2023-06-01 21:37:40 +02:00
Ben Loftis cc630c6bbe tempo mapping: clicking on a bar line should always make a new tempo marker
* the process of tempo mapping requires/encourages you to click on the
   last-known good marker, before continuing to make tempo tweaks

* this conflicts with the idea that clicking in a ruler should start a
    playhead-drag.  TBD.   but tempo-mapping is a special and rare operation.
2023-05-22 15:51:33 -05:00
Robin Gareus c669ff58e5
Cleanup, fix Wunused-private-field 2023-05-22 22:29:42 +02:00
Robin Gareus 515e67f784
NO-OP: clang-format 2023-05-22 22:23:41 +02:00
Ben Loftis a217c58ff5 tempo mapping: remove an unnecessary limit on tempo-drags
a) mouse-scaling is not 1:1
b) invalid tempo values are prevented internally anyway
2023-05-22 13:33:03 -05:00
Ben Loftis 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
Ben Loftis 9fa8e257a6 tempo mapping: Mapping Drags should inhibit horizontal autoscroll 2023-05-22 13:32:38 -05:00
Robin Gareus dbebc0b7e0
Make Markers properly themable, use color-names
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
Ben Loftis 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
Ben Loftis 3f15a3a402 set playhead sensitivity via config (defaulted insensitive)
* in the 'fake_drag' case (dragging the playhead from the ruler), the
 mouse events are delivered to the playhead during the drag so we need
 to temporarily sensitize the playhead during that operation, then reset
 the sensitivity via config
2023-05-01 08:49:27 -05:00