Commit graph

110 commits

Author SHA1 Message Date
Paul Davis
641e3441b8 fix operation of MIDI draw channel dropdown/selector 2025-07-12 11:06:33 -06:00
Paul Davis
38cfd12bac NoCamelCase method names (gui) 2025-07-12 10:51:54 -06:00
Paul Davis
25b1057e7d fix computation of maximum zoom for an editing context
it must take the max_extents_scale() value into consideration.
2025-07-04 12:22:10 -06:00
Paul Davis
baf41a65c3 some incremental improvements in scroomer behavior
Notably dbl-click works consistently/reliably
2025-06-30 09:39:51 -06:00
Paul Davis
87b50a4ecd use method instead of a direct call, to centralize logic 2025-06-28 22:45:08 -06:00
Paul Davis
ad6b6f1e30 desensitize automation keybindings after session is set, to avoid them being active by default
ARDOUR_UI sets all session-sensitive actions to sensitive at session load
2025-06-28 22:44:41 -06:00
Paul Davis
a2c8203a19 use new ArdourDropdown API to build two of the midi draw menus 2025-06-25 22:18:15 -06:00
Paul Davis
567c0e09b8 NO-OP: remove out of date comment 2025-06-24 17:58:08 -06:00
Paul Davis
5e402aa0f9 NO_OP: better code styling 2025-06-24 17:57:47 -06:00
Paul Davis
7cf90f0f54 NO-OP: spaces, please 2025-06-24 17:57:17 -06:00
Paul Davis
e448c3f4aa allow pianorolls not to show MIDI channel selector/dropdown
pianorolls have the visibility channel control. at some point we want the same idea
for the timeline, but it is not there yet
2025-06-23 16:16:12 -06:00
Paul Davis
a17cf3929d NOOP: whitespace around operators 2025-06-23 16:15:36 -06:00
Paul Davis
c6a49fdd50 basic implementation of Live-style kbd-driven automation editing 2025-06-17 14:03:43 -06:00
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
86a0bfdeab
Use consistent label for MIDI channel (main toolbar and pianoroll) 2025-06-13 17:16:59 +02:00
Robin Gareus
4c5284737d
Use action to toggle follow playhead 2025-06-12 22:19:14 +02:00
Robin Gareus
666a32499c
Move the follow_edits from toolbar to editor context bar 2025-06-12 22:11:33 +02:00
Paul Davis
27796ddefb use new follow playhead icon 2025-06-12 12:52:13 -06: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
b6d8f77173 fix bad lifetime mgmt for VerboseCursor class 2025-05-27 08:49:32 -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
f6b3caad52 do not attempt to compute samples per pixel (zoom level) on EditingContext if _track_canvas_width is still zero
This leads to undefined/incorrect arithmetic results
2025-05-16 16:43:12 -06:00
Paul Davis
4732e702ce use a Glib constant as a better indication of the return value semantics in an idle callback 2025-05-16 16:43:12 -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
7bdb86b357 call a spade a spade (or rather, a MidiView a view) 2025-03-16 15:01:51 -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
68a93b3804 fix the construction of a reversible command to be HistoryOwner specific 2025-03-15 10:56:17 -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
9405f807ec avoid crash if get_bindings_from_widget_heiarchy() moves to top of tree 2025-03-11 13:47:36 -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
a0b2e85c7c better handling of MIDI channel selector on pianoroll 2025-02-02 11:32:45 -07:00
Paul Davis
f5f238b30a prefer !foo to foo == 0 for nullptr conditionals 2025-01-29 17:40:57 -07:00
Paul Davis
348bf8b6c2 GridLines needs an EditingContext so that it uses the right samples per pixel 2025-01-29 17:40:57 -07: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
829d798759 use _track_canvas_width not _visible_canvas_width for zoom math in Pianoroll
The latter is the width of the entire canvas including the pianoroll header
2025-01-26 15:51:18 -07:00
Paul Davis
eff21bb3e9 add debug printf to explain a stacktrace (for now) 2025-01-26 15:51:18 -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
656273cb9f fix zoom focus issues (not properly refactored in pianorule 2025-01-22 18:20:25 -07:00
Paul Davis
e5fb2d83da use the right GdkWindow when setting the canvas cursor 2025-01-16 12:30:15 -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
1ae5ea0e92 prwevent scroll-driven zoom in pianoroll from exceeding a reasonable level 2025-01-08 14:26:28 -07:00