Paul Davis
a72bde5d3c
add the final virtual GhostRegion method to VelocityGhostRegion
2024-10-17 07:44:31 -06:00
Paul Davis
76104f994b
velocity display: clear must invalidate optimization iterator
2024-10-17 07:44:31 -06:00
Paul Davis
a44e8ac088
fix drawing of lollipops.
...
There may be more virtual GhostRegion methods that VelocityGhostRegion has to proxy
to VelocityDisplay
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
7901b4119f
we're gonna need a bigger debug set
2024-10-17 07:44:31 -06:00
Paul Davis
739d58840f
manually reimplement 3766b22e06 from master (sysex deletion)
...
Things have changed
2024-10-17 07:44:31 -06:00
Paul Davis
15258b9aa4
new base class for automation lines
2024-10-17 07:44:31 -06:00
Paul Davis
fa993ec9f4
various fixes to get lollipops to display (cue editor only so far)
2024-10-17 07:44:31 -06:00
Paul Davis
c8924f4133
fix lollipop drawing
...
Cairo coordinate/argument limits are much smaller than the canvas. Trying
to clip to a gigantic rectangle throws cairo into a weird state, so
make sure we only clip to a part an exposed area
2024-10-17 07:44:31 -06:00
Paul Davis
0399cd9d02
initial use of refactored VelocityDisplay
2024-10-17 07:44:31 -06:00
Paul Davis
96e074d78c
refactor velocity display so that it can be used in the editor and elsewhere
2024-10-17 07:44:31 -06:00
Paul Davis
c232525e94
remove broken out loop iteration
2024-10-17 07:44:31 -06:00
Paul Davis
69871e0021
trigger page: use a VPane so we can enlarge the cue editor if desired
...
Plus fixup to get MIDI notes redrawn as pane is resized
2024-10-17 07:44:31 -06:00
Paul Davis
12519ef621
add a new automation group rect to the midi cue editor, and size it
2024-10-17 07:44:31 -06:00
Paul Davis
45e4b97a6f
move some methods from Editor to Editing context so that drawing controls work everywhere
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
0b05ec93c8
use correct item for stream, automation track and region drags
2024-10-17 07:44:31 -06:00
Robin Gareus
e67a3387fd
Fix Editor Lua bindings
...
Methods that have been moved to EditingContext need
to reference the abstract definition there, and PublicEditor's
first parent class also need to be EditingContext (same
memory address)
2024-10-17 07:44:31 -06:00
Robin Gareus
7e7440bc33
Fix Lua bindings, Session is-a HistoryOwner
...
For derived classes to work in Lua w/o explicit cast,
it needs to be the first parent.
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
f392a28ea4
fix management of undo/redo and _current_editing_context
...
We cannot switch on a leave event from a widget, because the undo/redo menu items must remain
labelled until we are actually in a new editing context. So switch when we switch tabs
or when we edit the (MIDI) cue editor
2024-10-17 07:44:31 -06:00
Paul Davis
8523598664
fix management of undo/redo and _current_editing_context
...
We cannot switch on a leave event from a widget, because the undo/redo menu items must remain
labelled until we are actually in a new editing context. So switch when we switch tabs
or when we edit the (MIDI) cue editor
2024-10-17 07:44:31 -06:00
Paul Davis
e591bc91f9
attach shared bindings to a parent of editor canvas to make them accessible
2024-10-17 07:44:31 -06:00
Paul Davis
86ecca8c76
make undo/redo action sensitivity work with multiple EditingContexts
2024-10-17 07:44:31 -06:00
Paul Davis
911ad78c06
add API to access PBD::UndoHistory member of HistoryOwner
2024-10-17 07:44:31 -06:00
Paul Davis
c4534cc9c4
undo history for MidiCueEditor
...
redo not operational yet for some unknown reason
2024-10-17 07:44:31 -06:00
Paul Davis
8eb38f1406
move undo/redo key bindings into shared "Editing" space
2024-10-17 07:44:31 -06:00
Paul Davis
a61f49ad4f
show Bindings _name in DEBUG_TRACE output
2024-10-17 07:44:31 -06:00
Paul Davis
42959b1313
adjust MidiModel API to require HistoryOwner not Session for commands
2024-10-17 07:44:31 -06:00
Paul Davis
8c086693af
show HistoryOwner::_name in DEBUG_TRACE messages
2024-10-17 07:44:31 -06:00
Paul Davis
6081bd5e19
make CueEditor be a HistoryOwner and start on undo/redo refactor
2024-10-17 07:44:31 -06:00
Paul Davis
b989464914
NO-OP: add useful comment
2024-10-17 07:44:31 -06:00
Paul Davis
e8fdbb8cd9
Session IS-A history owner
2024-10-17 07:44:31 -06:00
Paul Davis
d30c8a1286
abstract concept of a history owner from ARDOUR::Session into libpbd
2024-10-17 07:44:31 -06:00
Paul Davis
f80395fc2f
use MidiModel::ContentsChanged to drive MIDI cue edit swaps (GUI version)
...
No need for a special method called post-edit
2024-10-17 07:44:31 -06:00
Paul Davis
fd6afb30e6
use MidiModel::ContentsChanged to drive MIDI cue edit swaps
...
No need for a special method called post-edit
2024-10-17 07:44:31 -06:00
Paul Davis
60830f4ab7
remove debug output
2024-10-17 07:44:30 -06:00
Paul Davis
62d36832c6
more changes to get MIDI clip editing working
...
MIDITrigger now has a direct reference to a MidiModel, and uses
that as the basis for discovering what state has changed and needs
updated after an edit operation pushes a new state to the trigger
2024-10-17 07:44:30 -06:00
Paul Davis
7bf464795a
add ::render() to MidiModel since that's what we'll be editing
2024-10-17 07:44:30 -06:00
Paul Davis
fcfa4fecb4
more preparation for MIDI cue editing to propagate to the slot (trigger)
2024-10-17 07:44:30 -06:00
Paul Davis
06d5496f70
further preparation for MIDI cue editing in triggerbox code
2024-10-17 07:44:30 -06:00
Paul Davis
9060a32c34
MIDI state trackers: dump() is const
...
Plus minor fixes to ::resolve_diff()
2024-10-17 07:44:30 -06:00
Paul Davis
044aec6563
basics of MIDI clip editing notification via model swap
2024-10-17 07:44:30 -06:00
Paul Davis
7dee98279a
extend MidiModel and MIDITrigger in preparation for edit-change handling
2024-10-17 07:44:30 -06:00
Paul Davis
5da8de05ca
NO-OP: internal whitespace and newline cleanup
2024-10-17 07:44:30 -06:00
Paul Davis
4267d5b0d7
MidiStateTracker: extend API to allow "diffs" between two MidiStateTrackers
2024-10-17 07:44:30 -06:00
Paul Davis
4bbdbc6d13
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-10-17 07:44:30 -06:00
Paul Davis
3224b37702
NO-OP: whitespace
2024-10-17 07:44:30 -06:00
Paul Davis
4724683b5f
fix placement of ghost note while in draw mode
2024-10-17 07:44:30 -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