Commit graph

60 commits

Author SHA1 Message Date
Aleksandr Prokudin
f26994c747 Remove the X to make a user-visible message translatable 2025-11-15 14:18:33 +01:00
Paul Davis
b53eb649af cue editors: fix connecting to timer for playhead updates 2025-10-29 18:12:07 -06:00
Paul Davis
3015e18c18 make count in text more likely to appear as expected 2025-10-27 19:35:41 -06:00
Paul Davis
1fa666c090 refactoring of various clip GUI code
This better defines when a region/trigger/track is being set and
signals connected/disconnected to/from, along with some more
code sharing between the MIDI (Pianoroll) and audio (AudioClipEditor)
versions of things
2025-10-27 09:27:24 -06:00
Paul Davis
4c95a82934 removed unused variable 2025-10-25 14:58:56 -06:00
Paul Davis
297e146152 use the correct region tempo map when getting BBT metric in a CueEditor 2025-10-20 14:58:16 -06:00
Robin Gareus
6126b96ca3
Properly display solo state on cue page, include implicit solo 2025-09-25 21:37:01 +02:00
Paul Davis
3cd7bd661c also save mouse mode, x-origin and snap mode in RegionUISettings 2025-09-15 22:14:27 -06:00
Paul Davis
a6295e4d3f cue editors: add zoom focus to saved state 2025-09-15 22:07:28 -06:00
Paul Davis
1426573707 do not disconnect from history changed signal when resetting a region in a cue editor
The history is cleared separately, we can remain connected to the signal. Nothing will happen to it that
we don't control, since we own the UndoHistory object
2025-09-10 15:09:07 -06:00
Robin Gareus
5d9d367cde
Don't unset CueEditor:_track when changing regions.
CueEditor::catch_pending_show_region() calls ::set_region
which calls CueEditor::unset(false). This reset _track.

Also PianorollWindow::set() calls set_track() before set_region(),
the latter also reset CueEditor::_track.

This fixes the Solo button in the Pianoroll window, and
probably some other things, too.
2025-09-09 01:25:33 +02:00
Paul Davis
2e33194ed5 virtualize some CueEditor methods to allow audio clip editor to do the right thing 2025-09-02 11:09:37 -06:00
Paul Davis
ac7cbec9c9 no need for EC_LOCAL_TEMPO_SCOPE in CueEditor::session_going_away() 2025-09-01 11:17:24 -06:00
Paul Davis
6187dd35c8 refactor code for region trimming from Pianoroll/MidiView
This splits out boundary-dragging things into boundary.{cc,h} and the rest
into CueEditor
2025-08-27 14:02:49 -06:00
Robin Gareus
cd9fe29347
One less debug message 2025-08-27 15:58:53 +02:00
Robin Gareus
5e706c4fd4
Remove debug message 2025-08-25 01:08:55 +02:00
Paul Davis
01000ab6c9 do not short-circuit CueEditor::set_region() if used with the current region
This stops us from failing to calling unset(), which was resulting in a pianoroll
being over-connected to a region's property change signal.

Also, EC_LOCAL_TEMPO_SCOPE is inappropriate in a method that will
call set_local_tempo_map()
2025-08-24 16:28:56 -06:00
Paul Davis
e684fb4eaf use Session::request_locate() fully, to avoid 2nd session transport request 2025-08-23 22:35:16 -06:00
Robin Gareus
4b88330c9c
Use main editor for loop-range undo/redo - fix crash
While CueEditor is-a HistoryOwner, session specific
changes such as Location don't belong in EditingContext.

This fixes a heap-use-after-free crash since MementoCommand
was free()ed twice. Once via ARDOUR::Location::~Location
and earlier due to direct Destructible::drop_references
from the History.

This partially reverts 04a8fb1eb6
2025-08-20 21:32:22 +02:00
Paul Davis
bd34f1744d add window geometry to region UI settings, and save after changes
Changes are detected in Pianoroll::canvas_allocate(), which is a proxy for window
geometry. Since Pianoroll doesn't own a window, this is not necessarily ideal, but it
works.
2025-08-18 12:47:25 -06:00
Paul Davis
192c7a2f9a fix for a subtle bug that led to track headers not expanding as intended
now that we use action-as-state, there was no way to look up the old
mouse mode when changing into or out of internal editing. this
prevented us from queuing the redisplay of trackviews that allows the track
headers to expand when appropriate.
2025-08-14 18:48:04 -06:00
Paul Davis
63db3d3736 fix interference between timer-based update in CueEditors and scroll-drag 2025-08-14 14:55:37 -06:00
Paul Davis
92267ec7db new scoped tempo maps mean we can use scope macro everywhere, for consistency 2025-08-12 07:54:11 -06:00
Paul Davis
a2c0183cbc temporal: fix up some logic relating to scoped tempo maps (GUI) 2025-08-11 15:41:34 -06:00
Paul Davis
2312187070 sort-of-a-solution for local TempoMap context in EditingContext 2025-08-10 20:25:59 -06:00
Paul Davis
673ce0f66f defer regionmap creation in clip editors to region 2025-08-10 07:55:39 -06:00
Paul Davis
ea4737079d region tempo and meter are optional (gui) 2025-08-10 07:55:39 -06:00
Paul Davis
ff648b6720 cue editor: fix local tempo scope and use region tempo map 2025-08-08 22:46:16 -06:00
Paul Davis
56647acc25 add local tempo scope calls to CueEditor, PianoRoll and AudioClipEditor 2025-08-08 15:03:41 -06:00
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
7be70d658b Revert "refactor pianoroll/cueeditor/audioclipeditor to share code and do the right stuff (compile success stage)"
This reverts commit 01beb00a5f.
2025-07-17 22:38:05 -06:00
Paul Davis
01beb00a5f refactor pianoroll/cueeditor/audioclipeditor to share code and do the right stuff (compile success stage) 2025-07-17 22:36:25 -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
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
852ad9a7da move grid updating code and members into EditingContext 2025-01-29 17:40:57 -07:00
Paul Davis
656273cb9f fix zoom focus issues (not properly refactored in pianorule 2025-01-22 18:20:25 -07:00
Paul Davis
f052c3ae15 some API tweaks, code movement and code implementation to make rbselect for pianoroll automation work 2025-01-19 15:10:35 -07:00
Paul Davis
eafa09099a get cue editor "full zoom" button working 2024-12-30 21:48:20 -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
fb4fefe573 fix some issues with zoom focus after refactoring it into EditingContext 2024-12-12 11:53:15 -07:00
Paul Davis
38f5546327 actually implement ::reposition_and_zoom() for midi cue editor 2024-12-12 11:53:15 -07:00
Paul Davis
c24b889717 for now, midi cue view uses mouse for zoom focus 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
d5cc1b5efc initial steps to trigger start/end point display and editing 2024-11-22 09:33:38 -07: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
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
Paul Davis
2fceb66193 manual fixups for errors during rebasing against master 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