Paul Davis
ea1695dbc0
code refactoring and action name handling to make follow-playhead work in multiple editing contexts
2025-06-15 21:17:42 -06:00
Robin Gareus
666a32499c
Move the follow_edits from toolbar to editor context bar
2025-06-12 22:11:33 +02:00
Paul Davis
08da5255fe
tweak EditingContext APIs to get context menus in pianoroll working sensibly
...
There is now a separate context menu for note-context clicks and "region" context clicks.
Something similar may be desirable for timeline editing too
2025-06-12 12:09:11 -06:00
Paul Davis
6918a8a267
some rationalization to how Editor & CueEditor (Pianoroll) handle ZoomLevel and TimeOrigin changes
2025-05-19 14:57:19 -06:00
Paul Davis
94dbcaa7e2
provide a new EditingContext/Editor method to set the cursor appropriately for section selections
2025-05-14 11:37:01 -06:00
Paul Davis
8d7b4f7991
fixes so that cursor changes inside a MidiRegionView work as intended
...
They already worked in the PianorollMidiView, because that hands off enter/leave events
to the parent EditingContext (a Pianoroll). But MidiRegionView and Editor were
not interacting in the same way, so leaving a note object would not cause the Editor
to do the right thing with the cursor.
2025-04-25 11:28:45 -06:00
Paul Davis
5526880ac8
do not create an empty region for a cue slot when it is selected for editing
...
There's an assumption that slots with regions cannot be recorded into,
so adding a region to an empty slot makes it impossible to record to that
slot.
Create the region at the appropriate point during a NoteCreateDrag.
This may also be needed for some automation drawing drag operations.
2025-04-24 12:07:19 -06:00
Paul Davis
fad3c32267
better handling of cloned bindings/actions
2025-04-01 14:55:32 -06:00
Paul Davis
51dbe70b44
no more trim cursor in drae mode in the pianoroll
...
For some reason, we allow users to trim notes on the timeline when in
draw mode. Not sure why. We don't allow this in pianorolls, so make
sure the cursors don't suggest otherwise
2025-03-20 14:14:08 -06:00
Paul Davis
04a8fb1eb6
add mostly-function play/loop/solo buttons to pianoroll
...
These need to be hidden when working on cues
2025-03-15 10:56:47 -06:00
Paul Davis
179fd25715
some fixes for sigc::connection mgmt and lifetime mgmt for EditingContext
2025-03-14 15:56:21 -06:00
Paul Davis
49d9701aaf
cleanup a virtual method that is no longer relevant after the prior commit
2025-03-12 21:15:32 -06:00
Paul Davis
252be10a73
fix action group used for Editor/set-mouse-mode-object-range
2025-03-12 21:10:44 -06:00
Paul Davis
56e587476e
continuing work managing bindings, actions and action groups
2025-03-12 17:59:24 -06:00
Paul Davis
83d2adfd67
remove current_editing_context concept
...
All bindings, actions and members of an EditingContext are now per-EditingContext,
and have no impact on others (other than cursors).
2025-03-12 12:36:34 -06:00
Paul Davis
801099e057
use Gtkmm2ext::BindingSet for the GUI
2025-03-10 18:49:02 -06:00
Robin Gareus
d8e7e24f59
Use dedicated common actions per edit context
...
Pianoroll and main editor mouse-mode/tool actions are
now separate.
2025-03-05 22:49:37 +01:00
Paul Davis
852ad9a7da
move grid updating code and members into EditingContext
2025-01-29 17:40:57 -07:00
Paul Davis
ef6502d88d
initial refactoring to prepare for grid lines in pianoroll
2025-01-29 17:40:57 -07:00
Paul Davis
b82ae5590c
ensure that a Pianoroll window (and its action groups) are deleted when appropriate
2025-01-28 13:29:40 -07:00
Paul Davis
454f87568a
pianoroll window needs to forward key press events to make MIDI bindings active
2025-01-26 19:57:41 -07:00
Paul Davis
698ae7ca9f
fix Pianoroll::zoom_to_show() so that it does what it says
...
... and also interacts with EditingContext::reset_zoom() correctly due to the
scaling factor that, for the Pianoroll, tries to show a bit more time than
is represented by the data
2025-01-26 15:51:18 -07:00
Paul Davis
22a5113b59
change how mouse mode actions are defined
...
they now use a lambda for the functor, and the lambda calls
current_editing_context() to pick which EditingContext will
be affected.
this design replaces one where each EditingContext had its
own set of mouse mode actions defined, using its own name
as the action group
2025-01-16 12:30:15 -07:00
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
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
0a40b50b86
refactor zoom focus handling so that all EditingContexts can use the same code
2024-12-29 11:24:16 -07:00
Paul Davis
25b830b032
fix event handling/routing from MidiView up to EditingContext
...
in particular, rename MidiView::canvas_group_event() to
avoid confusion with TimeAxisViewItem::canvas_group_event()
since a MidiRegionView inherits from both these classes.
2024-12-27 14:00:55 -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
a6ca9be006
refactor editor-y zooms into EditingContext
2024-12-12 11:53:15 -07:00
Paul Davis
15c86492fa
use RAII for cursor mgmt around thread-waits
2024-12-08 15:09:32 -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
465f39e5bf
create nonfunctional clip boundary drags when appropriate
2024-11-23 09:06:38 -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
Robin Gareus
a76d4b4c82
Fix class/struct mismatch (can cause with Windows builds)
2024-11-06 05:43:25 +01:00
Mads Kiilerich
140670541f
Use .inc.h for #include files that not are plain headers
...
Regular .h files *should* be self-contained and independent of previous
includes and guarded to only include once. Make it clear which files
that *doesn't* apply for at all.
2024-10-20 03:11:53 +02:00
Robin Gareus
2339b4dfdc
Replace PBD::Signals (2/2)
2024-10-18 20:41:08 +02:00
Paul Davis
2afdeb519f
refactor rubberband drags to take a functor for the no-drag condition
...
Also move code for adding automation line control points into automation line, rather
than in AutomationTimeAxisView (some work still required to finalize this)
2024-10-17 07:44:32 -06:00
Paul Davis
e6c0fcf98f
refactor end-of-rb-selection for EditingContext
...
Whhat the main editor and the cue editor do with a click varies significantly
2024-10-17 07:44:32 -06:00
Paul Davis
4b8c51574d
refactor the "selectables" API to allow use within separate (e.g. cue) editors
2024-10-17 07:44:32 -06:00
Paul Davis
ca1583cdad
the great onceification (gui)
...
Replace use of #ifndef header guards with #pragma once
Modern C++, baby!
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
afa15a0061
get velocity editing working in both the cue editor and MIDI region views
...
Quite a bit of hairy coordinate system stuff in here that ought to be commented more
clearly
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