Commit graph

1165 commits

Author SHA1 Message Date
Paul Davis
5635144e42 initial rename of MidiCueEditor -> Pianoroll 2025-01-07 11:30:26 -07:00
Paul Davis
96595669dc fix clip start/end drags with snap enabled 2025-01-07 10:37:56 -07:00
Paul Davis
dbcf4c14f4 fix mechanism used for moving/dragging clip end handles 2024-12-27 14:10:00 -07:00
Paul Davis
84c78db3ad remove unused variables 2024-12-27 14:09:27 -07:00
Paul Davis
76fa75cf9a add a check on the event type passed to start Drags
Drags should always be started by a button press event.
2024-12-27 14:09:11 -07:00
Paul Davis
084a23a80d some work on being able to swap channels and have different MIDI automation displayed in pianoroll 2024-12-20 11:48:40 -07:00
Paul Davis
98c9c03e9f remove all trace of cursor stacks; canvas cursor is always "just set" 2024-12-08 12:13:41 -07:00
Paul Davis
2096ff7876 cue editor end dragging operational 2024-11-26 13:11:17 -07:00
Paul Davis
2eece78718 stop leftward drags from corrupting clip start 2024-11-25 21:37:55 -07:00
Paul Davis
ecd3cf8766 improved ("working") clip start drag 2024-11-25 21:16:15 -07:00
Paul Davis
efc153d880 actually set trigger start to where mouse was released when dragging 2024-11-25 18:16:56 -07:00
Paul Davis
5ef4f8973f somewhat sort of working clip start drag (GUI edition) 2024-11-25 17:54:15 -07:00
Paul Davis
465f39e5bf create nonfunctional clip boundary drags when appropriate 2024-11-23 09:06:38 -07:00
Paul Davis
48ed5be776 skeleton for clip start/end editing 2024-11-12 18:54:41 -07:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Robin Gareus
ff95d81612
Reduce reliance on boost - the easy part
* boost::unordered_map -> std::unordered_map
* BOOST_STATIC_ASSERT/static_assert
* BOOST_FOREACH -> for
* boost::tuple -> std::tuple/g
* boost::math::isnormal -> std::isnormal
* boost::container::set -> std::set
* boost::none -> std::nullopt
* boost::optional -> std::optional
2024-10-19 03:41:16 +02:00
Robin Gareus
168b917730
Prepare for std::optional 2024-10-19 03:40:04 +02:00
Paul Davis
bf2016071d a variety of improvements related to clip recording & editing 2024-10-17 21:47:52 -06:00
Paul Davis
01068fe306 further adventures in drag-refactoring do that LineDrag can be used in MidiCueEditor also 2024-10-17 07:44:32 -06:00
Paul Davis
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
Paul Davis
e6c0fcf98f refactor end-of-rb-selection for EditingContext
Whhat the main editor and the cue editor do with a click varies significantly
2024-10-17 07:44:32 -06:00
Paul Davis
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
Paul Davis
56ce9c33c0 renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine 2024-10-17 07:44:31 -06:00
Paul Davis
90c8726c6d wideranging changes to get automation editing working in cue editor 2024-10-17 07:44:31 -06:00
Paul Davis
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
Paul Davis
54fdf90cc2 lots of detailed fixes to get lollipops in tracks working again, post re-factor 2024-10-17 07:44:31 -06:00
Paul Davis
fa79645c19 move most of AutomationLine into AutomatonLineBase, a class not strongly tied to the editor 2024-10-17 07:44:31 -06:00
Paul Davis
2fceb66193 manual fixups for errors during rebasing against master 2024-10-17 07:44:31 -06:00
Paul Davis
30a7f44c12 fix geometry calculations during NoteCreateDrags.
This also only uses the draw length parameter if no motion
occured during the NoteCreateDrag. Otherwise it uses the length that was
dragged (which is subjected to a threshold).
2024-10-17 07:44:30 -06:00
Paul Davis
dd211c4329 prefer nullptr to 0 2024-10-17 07:44:30 -06:00
Paul Davis
c97f4f4016 various changes to editor drag code to correctly use a bounding item 2024-10-17 07:44:30 -06:00
Paul Davis
030052e57f don't double-apply the effect of a drag with a bounding item to _grab_y 2024-10-17 07:44:30 -06:00
Paul Davis
6ee97f93bb more manual fixes after a substantial rebase 2024-10-17 07:44:30 -06:00
Paul Davis
bef7c48fe9 the state of things in pianorule, committed for travel purposes 2024-10-17 07:44:30 -06:00
Paul Davis
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
Paul Davis
14b95116e1 move various action registry stuff into EditingContext 2024-10-17 07:44:30 -06:00
Paul Davis
5acedc036a fix up event handling so that MIDI note drag works in cue editor 2024-10-17 07:44:30 -06:00
Paul Davis
f425a974d6 the continuing co-evolution of Editor,EditingContext & MidiCueEditor 2024-10-17 07:44:30 -06:00
Paul Davis
10b48d2cc4 lock in some major steps for the midi cue/pianoroll editor 2024-10-17 07:44:29 -06:00
Paul Davis
c39558471f remove current slice usage/members 2024-10-17 07:44:29 -06:00
Paul Davis
33298a0ba0 get region-create drags working and no crashes (nut also no note) for note-drags 2024-10-17 07:44:29 -06:00
Paul Davis
54c41372cc fix a rebase error 2024-10-17 07:44:29 -06:00
Paul Davis
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
Paul Davis
dee8e920e6 editing refactoring, the drag part 2024-10-17 07:44:29 -06:00
Paul Davis
21610015ed make sure SelectionRemove case is handled for selection ops
Also fix formatting for switch/case statements
2024-08-06 17:36:35 -06:00
Paul Davis
af5c99dd05 move definition of selection operations in to ARDOUR namespace
This is a rare commit that I think should be done for GUI and libs at the same time
2024-08-02 11:50:21 -06:00
Robin Gareus
0f4fb04344
Prevent crash when dragging notes near 1|0|0
When moving the mouse fast it can happen that the resulting
position (note_qn + dx) becomes negative. Which causes
tempo-map ramp calculations to fail and the application aborts.
2024-08-02 17:53:26 +02:00
Robin Gareus
59e50c0e16
Better version of 1471950e (Note-drag dx) 2024-08-01 19:17:05 +02:00
Robin Gareus
1471950e24
Fix dragging MIDI events when using a tempo-map
This keeps mouse pointer and the dragged note in sync.
See also https://discourse.ardour.org/t/110511
2024-08-01 19:03:01 +02:00
Robin Gareus
44d01f5951
Update coverage frame while timming regions #9725 2024-06-21 17:36:28 +02:00