Paul Davis
4e8591da99
move cut/copy/delete/paste operations into EditingContext
...
derived classes (Editor and Pianoroll) provide ::cut_copy() to wrap the
context-specific logic, and then both defer to MidiView for MIDI-specific
operations.
Note that this also changes several action names in ardour.keys.in
2025-01-14 15:31:53 -07:00
Paul Davis
13161a3975
refactor point-selection-changed logic "up" into EditingContext
2025-01-14 15:28:51 -07:00
Paul Davis
1ae5ea0e92
prwevent scroll-driven zoom in pianoroll from exceeding a reasonable level
2025-01-08 14:26:28 -07:00
Paul Davis
e206fd5863
share the full zoom button in EditingContexts
2025-01-07 17:11:08 -07:00
Paul Davis
bd9ab55fa0
move zoom in/out buttons to EditingContext and use on the pianoroll
2025-01-07 12:59:13 -07:00
Paul Davis
d0890abe9c
bring in change from bf7d4f895e but also try to fix API ambiguity and bug in that commit and existing code
...
_grid_type is an EditingContext member; grid_type is a method parameter
2025-01-05 11:49:18 -07:00
Paul Davis
9139b0731b
use icon for cue editor sound selected MIDI notes button and make it sensitive to the UIConfig parameter, and active
2025-01-03 09:14:26 -07:00
Paul Davis
4e80b8c9c7
set zoom focus selector tooltip in the right class
2024-12-29 11:30:06 -07:00
Paul Davis
0a40b50b86
refactor zoom focus handling so that all EditingContexts can use the same code
2024-12-29 11:24:16 -07:00
Paul Davis
5248e81f9d
start using visible channel in MIDI cue editor
2024-12-20 10:44:35 -07:00
Paul Davis
4c34f3cd29
provide rudimentary button control over percussive/sustained drawing in clip editor
...
Note that the note length selector can always be used to change the length of a note added
via a click
2024-12-13 21:48:18 -07:00
Paul Davis
0ff0d4df8b
get mouse-centered zoom working in cue editor
2024-12-12 11:53:15 -07:00
Paul Davis
fb4fefe573
fix some issues with zoom focus after refactoring it into EditingContext
2024-12-12 11:53:15 -07:00
Paul Davis
0e170b6457
C++, please
2024-12-12 11:53:15 -07:00
Paul Davis
a6ca9be006
refactor editor-y zooms into EditingContext
2024-12-12 11:53:15 -07:00
Paul Davis
98c9c03e9f
remove all trace of cursor stacks; canvas cursor is always "just set"
2024-12-08 12:13:41 -07:00
Paul Davis
5b112e489b
move zoom in/out actions into shared "Editing" group
2024-12-07 08:00:46 -07:00
Robin Gareus
d44ceb3ab7
Add API to consistently round start/end to duration to pixels
2024-11-28 15:00:40 +01:00
Paul Davis
28e638deac
undo a change the broke cursor management
...
push push pop pop must always work, even if the two pushes are for the same cursor
2024-11-19 16:31:36 -07:00
Paul Davis
f598f4e4e0
potential fixes for SNAFU with cursors
2024-11-19 16:04:41 -07:00
Paul Davis
e7b10fc37d
virtualize editing connections to parameter changes
2024-11-12 10:47:08 -07:00
Paul Davis
677a6764ac
add new buttons to EditingContext; use them in MidiCueEditor
2024-11-12 09:49:59 -07:00
Paul Davis
bccf36d665
catch pushing identical cursors to the cursor stack
2024-11-11 21:01:11 -07:00
Paul Davis
c7192b4cc0
add the concept of a length that is data-independent to MIDI files (GUI)
2024-10-31 12:22:35 -06:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
...
the rest from `tools/convert_boost.sh`.
* replace boost::function, boost::bind with std::function and std::bind.
This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Paul Davis
56ce9c33c0
renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine
2024-10-17 07:44:31 -06:00
Paul Davis
90c8726c6d
wideranging changes to get automation editing working in cue editor
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
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
86ecca8c76
make undo/redo action sensitivity work with multiple EditingContexts
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
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
71f946f3b3
move tooltip settings for EditingContext widgets to EditingContext
2024-10-17 07:44:30 -06:00
Paul Davis
36eda47075
get temporal zoom workign in MidiCueEditor
...
and remove qite a bit of debug output
2024-10-17 07:44:30 -06:00
Paul Davis
033dd31ff1
fix reordering warning
2024-10-17 07:44:30 -06:00
Paul Davis
dc44d10b48
handle Escape signal in all EditingContexts (including MidiCueEditor)
2024-10-17 07:44:30 -06:00
Paul Davis
f2e1697058
dammit jim, it's a stack not a queue
2024-10-17 07:44:30 -06:00
Paul Davis
afe98a6671
correctly define MIDI actions using MidiView, not MidiRegionView
...
The latter is derived from the former.
2024-10-17 07:44:30 -06:00
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
14b95116e1
move various action registry stuff into EditingContext
2024-10-17 07:44:30 -06:00
Paul Davis
0d01e73b86
some state mgmt for EditingContexts
2024-10-17 07:44:30 -06:00
Paul Davis
fcf5bb88d5
cue editor/piano roll: starting to get mode buttons working and keybindings too
2024-10-17 07:44:30 -06:00
Paul Davis
5acedc036a
fix up event handling so that MIDI note drag works in cue editor
2024-10-17 07:44:30 -06:00
Paul Davis
2b51e0ec24
prefer lambdas to stupid stub static functions
2024-10-17 07:44:30 -06:00
Paul Davis
f425a974d6
the continuing co-evolution of Editor,EditingContext & MidiCueEditor
2024-10-17 07:44:30 -06:00
Paul Davis
e3205bded0
do something to make MIDI bindings accessible in any EditingContext
2024-10-17 07:44:29 -06:00
Paul Davis
bde4768734
move a bunch of MIDI editing into EditingContext
2024-10-17 07:44:29 -06:00
Paul Davis
a2f04a3104
virtualize event handling methods for EditingContext
2024-10-17 07:44:29 -06:00