Commit Graph

39251 Commits

Author SHA1 Message Date
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