Paul Davis
e700e5dad1
fix handling of MIDI draw tool actions and widgets
...
The actions and draw_xxx values are now "static", and changes in the values are
notified via a static PBD::Signal so that each EditingContext can update the
appearance of its relevant widgets.
Note also wider use of lambdas when creating actions and menu items.
2024-06-11 15:16:16 -06:00
Paul Davis
2545a88d50
NO-OP: whitespace
2024-06-11 15:15:58 -06:00
Paul Davis
4e7b776b3b
fix placement of ghost note while in draw mode
2024-06-11 15:15:28 -06:00
Paul Davis
4ffcff624c
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-06-11 15:14:03 -06:00
Paul Davis
494579c20c
prefer nullptr to 0
2024-06-11 15:12:02 -06:00
Paul Davis
a5b5a2431d
move tooltip settings for EditingContext widgets to EditingContext
2024-06-11 15:11:41 -06:00
Paul Davis
74a94f5b25
get temporal zoom workign in MidiCueEditor
...
and remove qite a bit of debug output
2024-06-07 22:54:07 -06:00
Paul Davis
76e0615827
if the Editor is not the current EditingContext, don't do Editor::escape stuff
2024-06-07 10:06:34 -06:00
Paul Davis
6feb02498a
fix reordering warning
2024-06-07 10:05:57 -06:00
Paul Davis
b43d9926f8
handle Escape signal in all EditingContexts (including MidiCueEditor)
2024-06-07 10:05:25 -06:00
Paul Davis
1666cab029
dammit jim, it's a stack not a queue
2024-06-07 10:04:42 -06:00
Paul Davis
e2f6957c85
virtualize EditingContext::midi_action() so that MidiCueEditor works
...
This makes MIDI bindings work in the cue editor, as intended.
2024-06-06 23:46:03 -06:00
Paul Davis
9b3ecb3f45
correctly define MIDI actions using MidiView, not MidiRegionView
...
The latter is derived from the former.
2024-06-06 23:45:11 -06:00
Paul Davis
b7b05040c2
NO-OP: whitespace
2024-06-06 16:15:45 -06:00
Paul Davis
108acc04fb
correct errors in coordinate math when moving a mote selection
...
This may be the first of several instances where mixing
timeline-relative positions and global canvas coordinates leads to
problems. Let's hope there are not too many.
2024-06-06 16:15:45 -06:00
Paul Davis
d682a7bfd2
correctly set timeline_origin for a MidiCueEditor
...
for some reason the width is different when ::set_region() is called
2024-06-06 16:15:45 -06:00
Paul Davis
d8f222940a
various changes to editor drag code to correctly use a bounding item
2024-06-06 16:15:45 -06:00
Paul Davis
87f3df3845
don't double-apply the effect of a drag with a bounding item to _grab_y
2024-06-06 16:15:45 -06:00
Paul Davis
1d53d89ade
the horizontal position *is* the value of the horizontal adjustment.
...
Don't waste time getting a less accurate answer from sample_to_pixel() on
_leftmost_sample.
2024-06-06 16:15:45 -06:00
Paul Davis
663ed4cc5e
introduce concept of timeline origin to EditingContext
...
For the main editor, the timeline starts at the left edge of the editor
canvas. But for MidiCueEditor, we place a canvas-ified piano roll header on the
left of the canvas, so the timeline starts at some position right of that.
Note that this means that converting global canvas coordinates to timeline
coordinates is no longer guaranteed to be a 1:1 transform (it will be for
Editor, but in general for EditingContext).
2024-06-06 16:15:45 -06:00
Paul Davis
6213a0984c
additional DEBUG_TRACE (Destruction) output
2024-06-06 16:15:45 -06:00
Paul Davis
7be82af7f8
fix dangling references to a MidiRegion and MidiTrack in a MidiView
2024-06-06 16:15:45 -06:00
Paul Davis
7afc05055b
manual cleanup after another tricky rebase against master
2024-06-06 16:15:42 -06:00
Paul Davis
dd02fae6d8
more manual fixes after a substantial rebase
2024-06-06 16:15:06 -06:00
Paul Davis
18a13b92d7
more manual fixes after a substantial rebase
2024-06-06 16:15:06 -06:00
Paul Davis
a2b6e179c6
manual fixes after a substantial rebase
2024-06-06 16:15:06 -06:00
Paul Davis
811217bcdc
the state of things in pianorule, committed for travel purposes
2024-06-06 16:15:06 -06:00
Paul Davis
3c004fcbb1
basics of autoscroll for pianoroll (mostly shared with Editor)
...
More work to do moving/testing pianoroll autoscroll variant back into EditingContext
and sharing it with Editor.
2024-06-06 16:15:05 -06:00
Paul Davis
24f993361e
change coordinate system used for rubberband drags in piano roll
2024-06-06 16:15:05 -06:00
Paul Davis
95dcfb3d07
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-06-06 16:15:05 -06:00
Paul Davis
0e54de791e
fix event deliver for MidiCueView
...
events need a non-container item to be delivered
2024-06-06 16:15:05 -06:00
Paul Davis
0751c849aa
move various action registry stuff into EditingContext
2024-06-06 16:15:05 -06:00
Paul Davis
bca81a7312
add -D actions to gtkmm2ext
2024-06-06 16:15:05 -06:00
Paul Davis
43e3410591
get those MIDI tool selector menus built
2024-06-06 16:15:05 -06:00
Paul Davis
bb23b3ec14
some state mgmt for EditingContexts
2024-06-06 16:15:05 -06:00
Paul Davis
f1eef86e08
cue editor/piano roll: starting to get mode buttons working and keybindings too
2024-06-06 16:15:05 -06:00
Paul Davis
8f70463db9
stacktraces to help track down missing actions
2024-06-06 16:15:05 -06:00
Paul Davis
2e974c502b
cleanup canvas piano roll header so that it can exist with no current MidiView
2024-06-06 16:15:05 -06:00
Paul Davis
30fb42b28d
working and accessible canvas cursor setting
2024-06-06 16:15:05 -06:00
Paul Davis
72c200daad
note range for midi * views API cleanup
2024-06-06 16:15:05 -06:00
Paul Davis
296d8440d5
expose ::set_note_range() as public in MidiView
2024-06-06 16:15:05 -06:00
Paul Davis
9b476a4ed2
fix drawing translation issue
2024-06-06 16:15:05 -06:00
Paul Davis
abb91c490d
basically functioning piano roll for midi cue editor
2024-06-06 16:15:05 -06:00
Paul Davis
028d62bc3a
tentative beginnings for a canvas piano roll header
2024-06-06 16:15:05 -06:00
Paul Davis
b01163b7e0
fix up event handling so that MIDI note drag works in cue editor
2024-06-06 16:15:05 -06:00
Paul Davis
2ddcc5f5ee
prefer lambdas to stupid stub static functions
2024-06-06 16:15:05 -06:00
Paul Davis
097d31d991
and we have h-scrolling in the cue editor
2024-06-06 16:15:05 -06:00
Paul Davis
4e4a5832a4
the continuing co-evolution of Editor,EditingContext & MidiCueEditor
2024-06-06 16:15:05 -06:00
Paul Davis
7a8a972c75
tempo bar and BBT ruler in MIDI cue editor
2024-06-06 16:15:05 -06:00
Paul Davis
7af18c05a1
use SMF tempo map if available in MidiCueEditor
2024-06-06 16:15:05 -06:00