Commit graph

699 commits

Author SHA1 Message Date
Paul Davis
9c890f2690 zoom focus and snap mode get the stateful-action treatment 2025-07-30 15:28:46 -06:00
Paul Davis
1d4e3940d1 large-scale refactoring of Pianoroll, CueEditor and AudioClipEditor
Enables code-sharing between "clip editors"
2025-07-29 18:16:35 -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
7bdb86b357 call a spade a spade (or rather, a MidiView a view) 2025-03-16 15:01:51 -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
luzpaz
1a18417464
fix typos in gtk2_ardour directory
Found via `codespell -q 3 -S "*.pdf,*.po,./.git,*.tosc,./waf,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch" -L acount,addin,ane,ba,buss,busses,caf,capela,devine,disconnectin,discreet,doubleclick,envolution,filetest,fo,ghandi,homs,hsi,layed,maschine,mis,nd,ontop,pass-thru,removeable,retrn,ro,scrollin,sectionin,seh,siz,sord,sur,te,trough,ue,wth`
2025-01-18 00:55:34 +01: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
c98a36be0f switch mouse button and motion handling in MidiView to use Drag formalization
It appears that mouse handling in MidiRegionView (now moved into MidiView)
predated the full Drag formalization. This led to inconsistencies as parts of the Drag
formalization were adopted, including the use of motion events to start a drag (this
is incorrect in the current semantics of a Drag).

This commits removes all/most of the special purpose drag handling machinery in MidiView
and uses Drags instead
2024-12-27 14:13:02 -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
01068fe306 further adventures in drag-refactoring do that LineDrag can be used in MidiCueEditor also 2024-10-17 07:44:32 -06: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
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
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
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
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
Paul Davis
99d1a4cd9b if the Editor is not the current EditingContext, don't do Editor::escape stuff 2024-10-17 07:44:30 -06:00
Paul Davis
e205bb98a1 manual fixes after a substantial rebase 2024-10-17 07:44:30 -06:00
Paul Davis
96ccb96b3b redesign drag API to provide a bounding item, not just "trackview only"
This allows rubberband drags on both the main editor and the separate piano roll to wokr
correctly.
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
fcf5bb88d5 cue editor/piano roll: starting to get mode buttons working and keybindings too 2024-10-17 07:44:30 -06:00
Paul Davis
bde4768734 move a bunch of MIDI editing into EditingContext 2024-10-17 07:44:29 -06:00
Paul Davis
a550b6482f start using the now-compilable MidiView
Nothing yet derives from this, but MIDI display items and drags
do use it.
2024-10-17 07:44:29 -06:00
Paul Davis
e6c56b39d1 finish basic distribution of EditingContext methods
This compiles but is not expected to work yet
2024-10-17 07:44:29 -06:00
Paul Davis
dee8e920e6 editing refactoring, the drag part 2024-10-17 07:44:29 -06:00
Robin Gareus
8e063110db
Fix assert() when aborting automation line drag 2024-08-19 22:38:40 +02:00
Paul Davis
21610015ed make sure SelectionRemove case is handled for selection ops
Also fix formatting for switch/case statements
2024-08-06 17:36:35 -06:00
Paul Davis
af5c99dd05 move definition of selection operations in to ARDOUR namespace
This is a rare commit that I think should be done for GUI and libs at the same time
2024-08-02 11:50:21 -06:00
Robin Gareus
bd5e85780a
Hide region peak cursor when mouse leaves regions or canvas
Previously the cursor remained visible when moving the mouse
out of the canvas area.
2024-07-15 15:34:26 +02:00
Robin Gareus
e7d4f10e0d
Fix adding section markers with ctrl+click 2024-05-29 23:57:02 +02:00
Paul Davis
2d5884ccb1 refactor methods to add a location/section marker so that there is only one method for this 2024-05-21 08:21:02 -06:00
Paul Davis
553e534455 remove a number of canvas items that no longer exist after ruler consolidation 2024-05-17 09:07:00 -06:00
Paul Davis
0b8cfdee40 display MIDI scene markers 2024-04-25 13:07:00 -06:00
Robin Gareus
b2d4280e0f
Add support for Region Fx Automation 2024-04-23 21:56:22 +02:00
Robin Gareus
cece64e649
Remove another accidentally commited debug message 2023-10-07 18:25:32 +02:00
Robin Gareus
f78d82a192
Allow single click to create Region-Gain points (again)
regression was introduced in 18819a48a9
2023-10-07 18:17:36 +02:00
Robin Gareus
31730794be
Remove debug output from 5426bbfd57 2023-10-07 16:59:26 +02:00
Robin Gareus
5426bbfd57
Allow single-click on TempoMap Ruler markers
This fixes the abort, when clicking on a Tempo, Meter or BBT
Marker using the grid tool.
2023-10-07 15:54:23 +02:00
Robin Gareus
4a8dc04f14
Remove ScrubDrag and vari-speed based fake-scrubbing 2023-10-05 21:53:39 +02:00
Robin Gareus
96c45b65ee
Remove more or less useless Mouse Audition Button
Audition action is very much preferred and also works with
multiple selection.
2023-10-05 21:49:55 +02:00
Paul Davis
2194ae70da must reset BBT markers in GUI after reset_tempo_marks()
reset_tempo_marks() will have destroyed the tempo marks referenced by any
existing BBT marks
2023-10-03 10:16:36 -06:00
Paul Davis
764ed125a4 region gain line freehand draw: ensure drawn line is above waveform 2023-10-02 12:04:57 -06:00
Paul Davis
18819a48a9 region gain and MIDI CC freehand line drawing
This involved a significant change in event handling for automation region views,
but it brings it into line with how it works for other things. On button press
we initiate a drag, then if no motion occurs, the Drag returns false during
finalization, and only then do we continue through Editor::button_release_handler()
to eventually end up in ::add_automation_event().

Although it is a substantial change, the fact that it now works the same
way for audio regions, automation regions and automation tracks seems
like a definite plus.
2023-09-30 11:09:58 -06:00
Paul Davis
944fcf251d initial refactoring of freehand line drawing
This sets the state to use it with MIDI CC and region gain.

class names LineMerger and MergeableLine need revisiting
2023-09-30 11:09:58 -06:00
Robin Gareus
201b9574a2
In Draw mode, do not allow to grab lines.
see also 3cf1227421 and c578695a64
2023-09-26 17:03:09 +02:00
Robin Gareus
3cf1227421
Revert "in draw mode, mouse drags in automation tracks are always freehand drawing"
This reverts commit c578695a64.

When hovering over a control point there is still the "Fader"
cursor shown. It is also handy to be able to directly modify
a control-point right after adding it.

A freehand draw operation can be still be initiated above,
below, or left/right of a given control point.
2023-09-26 01:10:16 +02:00
Paul Davis
318af69057 do not grab magic widget focus for MIDI editing purposes
The bindings use will all work just fine without this focus grab; the focus
grab in turn confuses the use of some/all global bindings (such as the spacebar
to toggle tranport state)
2023-09-24 15:01:04 -06:00