13
0
Commit Graph

39708 Commits

Author SHA1 Message Date
8baaa7eb66 TriggerReference requires some sort of lifetime tracking
For now we use std::weak_ptr and std::enable_shared_from_this to accomplish tracking. There
may be an argument for using our own (PBD::Destructible) mechanisms instead.
2024-10-17 07:44:31 -06:00
e3ff81efcb remove dangling line of code that does nothing 2024-10-17 07:44:31 -06:00
a72bde5d3c add the final virtual GhostRegion method to VelocityGhostRegion 2024-10-17 07:44:31 -06:00
76104f994b velocity display: clear must invalidate optimization iterator 2024-10-17 07:44:31 -06:00
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
54fdf90cc2 lots of detailed fixes to get lollipops in tracks working again, post re-factor 2024-10-17 07:44:31 -06:00
7901b4119f we're gonna need a bigger debug set 2024-10-17 07:44:31 -06:00
739d58840f manually reimplement 3766b22e06 from master (sysex deletion)
Things have changed
2024-10-17 07:44:31 -06:00
15258b9aa4 new base class for automation lines 2024-10-17 07:44:31 -06:00
fa993ec9f4 various fixes to get lollipops to display (cue editor only so far) 2024-10-17 07:44:31 -06:00
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
0399cd9d02 initial use of refactored VelocityDisplay 2024-10-17 07:44:31 -06:00
96e074d78c refactor velocity display so that it can be used in the editor and elsewhere 2024-10-17 07:44:31 -06:00
c232525e94 remove broken out loop iteration 2024-10-17 07:44:31 -06:00
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
12519ef621 add a new automation group rect to the midi cue editor, and size it 2024-10-17 07:44:31 -06:00
45e4b97a6f move some methods from Editor to Editing context so that drawing controls work everywhere 2024-10-17 07:44:31 -06:00
fa79645c19 move most of AutomationLine into AutomatonLineBase, a class not strongly tied to the editor 2024-10-17 07:44:31 -06:00
0b05ec93c8 use correct item for stream, automation track and region drags 2024-10-17 07:44:31 -06:00
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
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
2fceb66193 manual fixups for errors during rebasing against master 2024-10-17 07:44:31 -06:00
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
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
e591bc91f9 attach shared bindings to a parent of editor canvas to make them accessible 2024-10-17 07:44:31 -06:00
86ecca8c76 make undo/redo action sensitivity work with multiple EditingContexts 2024-10-17 07:44:31 -06:00
911ad78c06 add API to access PBD::UndoHistory member of HistoryOwner 2024-10-17 07:44:31 -06:00
c4534cc9c4 undo history for MidiCueEditor
redo not operational yet for some unknown reason
2024-10-17 07:44:31 -06:00
8eb38f1406 move undo/redo key bindings into shared "Editing" space 2024-10-17 07:44:31 -06:00
a61f49ad4f show Bindings _name in DEBUG_TRACE output 2024-10-17 07:44:31 -06:00
42959b1313 adjust MidiModel API to require HistoryOwner not Session for commands 2024-10-17 07:44:31 -06:00
8c086693af show HistoryOwner::_name in DEBUG_TRACE messages 2024-10-17 07:44:31 -06:00
6081bd5e19 make CueEditor be a HistoryOwner and start on undo/redo refactor 2024-10-17 07:44:31 -06:00
b989464914 NO-OP: add useful comment 2024-10-17 07:44:31 -06:00
e8fdbb8cd9 Session IS-A history owner 2024-10-17 07:44:31 -06:00
d30c8a1286 abstract concept of a history owner from ARDOUR::Session into libpbd 2024-10-17 07:44:31 -06:00
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
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
60830f4ab7 remove debug output 2024-10-17 07:44:30 -06:00
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
7bf464795a add ::render() to MidiModel since that's what we'll be editing 2024-10-17 07:44:30 -06:00
fcfa4fecb4 more preparation for MIDI cue editing to propagate to the slot (trigger) 2024-10-17 07:44:30 -06:00
06d5496f70 further preparation for MIDI cue editing in triggerbox code 2024-10-17 07:44:30 -06:00
9060a32c34 MIDI state trackers: dump() is const
Plus minor fixes to ::resolve_diff()
2024-10-17 07:44:30 -06:00
044aec6563 basics of MIDI clip editing notification via model swap 2024-10-17 07:44:30 -06:00
7dee98279a extend MidiModel and MIDITrigger in preparation for edit-change handling 2024-10-17 07:44:30 -06:00
5da8de05ca NO-OP: internal whitespace and newline cleanup 2024-10-17 07:44:30 -06:00
4267d5b0d7 MidiStateTracker: extend API to allow "diffs" between two MidiStateTrackers 2024-10-17 07:44:30 -06:00
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
3224b37702 NO-OP: whitespace 2024-10-17 07:44:30 -06:00