13
0
Commit Graph

39651 Commits

Author SHA1 Message Date
dc44d10b48 handle Escape signal in all EditingContexts (including MidiCueEditor) 2024-10-17 07:44:30 -06:00
f2e1697058 dammit jim, it's a stack not a queue 2024-10-17 07:44:30 -06:00
280fdb6e62 virtualize EditingContext::midi_action() so that MidiCueEditor works
This makes MIDI bindings work in the cue editor, as intended.
2024-10-17 07:44:30 -06:00
afe98a6671 correctly define MIDI actions using MidiView, not MidiRegionView
The latter is derived from the former.
2024-10-17 07:44:30 -06:00
fea6c7592f NO-OP: whitespace 2024-10-17 07:44:30 -06:00
e0a5b591f8 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-10-17 07:44:30 -06:00
e7ae93929b correctly set timeline_origin for a MidiCueEditor
for some reason the width is different when ::set_region() is called
2024-10-17 07:44:30 -06:00
c97f4f4016 various changes to editor drag code to correctly use a bounding item 2024-10-17 07:44:30 -06:00
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
a9163516d8 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-10-17 07:44:30 -06:00
060d8c82d7 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-10-17 07:44:30 -06:00
d550292f8f additional DEBUG_TRACE (Destruction) output 2024-10-17 07:44:30 -06:00
36d0a6e908 fix dangling references to a MidiRegion and MidiTrack in a MidiView 2024-10-17 07:44:30 -06:00
3aba913649 manual cleanup after another tricky rebase against master 2024-10-17 07:44:30 -06:00
e630051de1 more manual fixes after a substantial rebase 2024-10-17 07:44:30 -06:00
6ee97f93bb more manual fixes after a substantial rebase 2024-10-17 07:44:30 -06:00
e205bb98a1 manual fixes after a substantial rebase 2024-10-17 07:44:30 -06:00
bef7c48fe9 the state of things in pianorule, committed for travel purposes 2024-10-17 07:44:30 -06:00
48a6e8dfcf 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-10-17 07:44:30 -06:00
3fccf2b458 change coordinate system used for rubberband drags in piano roll 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
3422ef5c3d fix event deliver for MidiCueView
events need a non-container item to be delivered
2024-10-17 07:44:30 -06:00
14b95116e1 move various action registry stuff into EditingContext 2024-10-17 07:44:30 -06:00
e7731f2e89 add -D actions to gtkmm2ext 2024-10-17 07:44:30 -06:00
023c21ff58 get those MIDI tool selector menus built 2024-10-17 07:44:30 -06:00
0d01e73b86 some state mgmt for EditingContexts 2024-10-17 07:44:30 -06:00
fcf5bb88d5 cue editor/piano roll: starting to get mode buttons working and keybindings too 2024-10-17 07:44:30 -06:00
009a0e6ffb stacktraces to help track down missing actions 2024-10-17 07:44:30 -06:00
59ed3d7138 cleanup canvas piano roll header so that it can exist with no current MidiView 2024-10-17 07:44:30 -06:00
d356cacb2a working and accessible canvas cursor setting 2024-10-17 07:44:30 -06:00
7899829a5e note range for midi * views API cleanup 2024-10-17 07:44:30 -06:00
9d8ddd814c expose ::set_note_range() as public in MidiView 2024-10-17 07:44:30 -06:00
a3491a13df fix drawing translation issue 2024-10-17 07:44:30 -06:00
df25386d2f basically functioning piano roll for midi cue editor 2024-10-17 07:44:30 -06:00
f7b6a3cac8 tentative beginnings for a canvas piano roll header 2024-10-17 07:44:30 -06:00
5acedc036a fix up event handling so that MIDI note drag works in cue editor 2024-10-17 07:44:30 -06:00
2b51e0ec24 prefer lambdas to stupid stub static functions 2024-10-17 07:44:30 -06:00
abf372ad46 and we have h-scrolling in the cue editor 2024-10-17 07:44:30 -06:00
f425a974d6 the continuing co-evolution of Editor,EditingContext & MidiCueEditor 2024-10-17 07:44:30 -06:00
10244c0360 tempo bar and BBT ruler in MIDI cue editor 2024-10-17 07:44:30 -06:00
a523551228 use SMF tempo map if available in MidiCueEditor 2024-10-17 07:44:29 -06:00
715ac5cd3a use new SMF::tempo_map() method when importing tempo map from SMF 2024-10-17 07:44:29 -06:00
b35b30c230 factor out code to extract a TempoMap from an SMF 2024-10-17 07:44:29 -06:00
f6b069d251 steps toward rulers for the MIDI cue editor 2024-10-17 07:44:29 -06:00
e3205bded0 do something to make MIDI bindings accessible in any EditingContext 2024-10-17 07:44:29 -06:00
bde4768734 move a bunch of MIDI editing into EditingContext 2024-10-17 07:44:29 -06:00
a2f04a3104 virtualize event handling methods for EditingContext 2024-10-17 07:44:29 -06:00
9dbdf0eb43 share code between MidiRegioNView and MidiView 2024-10-17 07:44:29 -06:00
0311bffed8 progrss with rubber band selection and event handling in MIDI cue editor 2024-10-17 07:44:29 -06:00
10b48d2cc4 lock in some major steps for the midi cue/pianoroll editor 2024-10-17 07:44:29 -06:00