Commit Graph

1015 Commits

Author SHA1 Message Date
dbebc0b7e0
Make Markers properly themable, use color-names
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
cb78043adc
Indicate selection extents in time ruler 2023-05-17 01:53:40 +02:00
1ee2675716
Implement Selection Marker class and events 2023-05-17 01:50:51 +02:00
a258b82ce9 tweak behavior and naming of tempo-map drags:
* correctly handle clicks on the immediate right or left of a beat line
* prefer Mid-Twist and End-Stretch terminology over Twist and Linear
* static-tempo vs ramped-tempo is orthogonal to mid- and end- drags (TODO)
2023-05-04 09:33:08 -05:00
87b5849a7b kbd bindings: fix issues with delete & backspace bindings in draw/i-edit mode
We now use the same actions in all modes, and the logic is:

1. is there a selected mixer strip and are we in it: if so, delete selected
   processors
2. are we in draw or internal mode? if so ..
   2a. if there are selected control points, delete them
   2b. if not, attempt to delete MIDI notes
   2c. done
3. continue with delete operation as before
2023-04-25 11:38:16 -06:00
13311b7a32 tempo mapping: tempo group and mapping group are now only ever visible one at a time
Currently, the "switch" is in Edit > Tempo
2023-04-08 11:44:21 -06:00
8fbf2c3f52 add enum and member var for controlling what kind of tempo editing we are doing
note: this was much harder than it ought to be
2023-04-08 11:44:21 -06:00
57398b1e5e tempo mappoing: use actual mouse cursors not canvas item cursors
Also some changes to attempt to do "half-twist" that will be removed soon.
2023-04-07 12:56:57 -06:00
f57a9d84df
Do not incrementally ripple during cut/delete #9295
When cutting multiple regions with Ripple-ALL, removing
the first region ripples the remaining tracks which includes
selected regions on those tracks which are to be cut later.
2023-04-06 02:18:42 +02:00
dd542b8f4d
Use ARDOUR::PlaylistSet instead of local typedefs 2023-04-06 02:13:51 +02:00
a0286f2e6f Expose cut-copy-section in the editor
This is still a bit of an experiment, there may need to be a dedicated
ruler for sections, or a side-bar that allows arranging.
2023-03-31 23:13:20 +02:00
91c0f143ec Set sensitvity of "Insert Selected Region" 2023-03-31 22:06:41 +02:00
77cefd7721 new tempo mapping drag objects (API and implementation) 2023-03-24 14:19:16 -06:00
aa3cbd8791 editor: expand handling of tempo-redisplay in middle of drag 2023-03-24 14:19:16 -06:00
ece438d73d editor: refactor snap to bbt to allow specifying non-grid-setting grid type 2023-03-24 14:19:16 -06:00
5e01503a56 add a new canvas-based cursor for mapping 2023-03-24 14:19:16 -06:00
d61a741e4b mapping bar: some mouse handling 2023-03-24 14:19:16 -06:00
18249f7395 ardour has a new ruler
The mapping bar is where tempo mapping operations will take place
2023-03-24 14:19:16 -06:00
21074b189a remove unnecessary virtual (no default value involved) 2023-03-24 14:19:15 -06:00
d25a615e20 API development for time domain flipping (GUI edition) 2023-03-24 14:19:15 -06:00
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
b8e9e67f78 tweak ::define_one_bar() API to allow correct undo/redo command name 2023-01-16 14:57:23 -07:00
1ff5592731
Remove UI side grid limit
This concept from 2007 is no longer required Temporal::get_grid
already limits the number of grid-lines depending on the step
size (mod-bar, beat_div) and start/end positions.
2023-01-11 00:32:47 +01:00
0f949bc02b
Add region polarity invert to Region menu 2022-12-17 13:15:42 +01:00
eb42318d3e
Consolidate ruler prelight events
This fixes various copy/edit bugs (e.g. transport ruler uses
"range marker bar" colors, but only after a enter/leave event).
2022-12-10 15:14:29 +01:00
b972301a3b
Add action to noninteractively add BBT marker at playhead 2022-12-02 21:31:56 +01:00
6af9dffa7c
Remove UI code to import markers as locations (3/4) 2022-11-22 01:46:22 +01:00
4e77bbdd96
dd import_markers option (2/4) 2022-11-22 01:45:42 +01:00
21a05f539b tweak PublicEditor API to include virtuals for tempo map edits 2022-10-27 13:42:58 -06:00
Mads Kiilerich
34527525be
Consistently put ruler toggle code in the same order
Just reordering.
2022-10-24 05:14:58 +02:00
0852f898a3
Prepare to move SimpleExport to backend 2022-10-21 19:35:17 +02:00
cf83815133 add clear-all-cues item to cue marker ruler context menu 2022-10-21 07:52:23 -06:00
1faefb5afd
Implement simple/quick export dialog 2022-10-20 21:38:45 +02:00
3a98d6133c
Hide draw-tools spacer when draw-tools are hidden 2022-10-18 02:11:09 +02:00
0938d21c30 change add new bbt marker from primary-click to context-click on BBT ruler 2022-10-03 14:16:34 -06:00
891b561cad Cleanup: use dedicated method to build draw menu 2022-10-01 18:03:03 +02:00
07dea50456
Fix DnD import to grouped tracks
Import via Drag/Drop previously worked by selecting a track,
and then importing to the selected track.

This approach fails when the selected track is in a track-group,
and selecting the track also selects other tracks of different type.

Now the track to drop onto is passed directly passed through to
::finish_bringing_in_material as existing_track.
2022-09-30 21:30:48 +02:00
luz paz
7f06beda50 Fix typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L acount,ba,buss,busses,discreet,doubleclick,hsi,ontop,retrn,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-09-21 19:09:55 -06:00
888d91d599 Add action to locate to loop start/end 2022-09-07 19:15:36 +02:00
d2fc142e21 infrastructure and implementation to allow "q" to drive quantize-selected-notes in midi edit mode 2022-08-31 13:53:55 -06:00
31640a9a5b gtk2_ardour: implement "Unlink from unselected" for MIDI regions
An attempt to satisfy #8848.

Add a new action, "fork-regions-from-unselected", which unlinks all
selected MIDI regions from any unselected regions, but maintains links
within the selection, and add the new action to the region MIDI context
menu as "Unlink from unselected". Rename the existing "fork-region" action
to "fork-selected-regions", and amend the existing "Unlink from other
copies" menu item to "Unlink all selected regions" to (try to) clarify the
difference.

Attach the <Tertiary>U default key-binding to the new action: I personally
think it's generally slightly more useful (otherwise I wouldn't have
implemented it), though I'm not that fussed.

In the case that there's only one MIDI region selected, or that none of
the selected regions are mutually linked, both actions will have exactly
the same result. Ideally, we'd only show a single menu item in this case,
but that would require (a) implementing a function to check whether the
selection contains any linked regions, and (b) making the region MIDI
context sub-menu dynamically generated, so that it can change based on the
result of that function, neither of which I've tried to do yet.
2022-08-18 09:18:25 -06:00
fc6ad8ebd9 bbt markers: all the basics of dragging, editing, removing 2022-08-17 16:40:35 -06:00
6784f0e5dc basic skeleton for BBT marker drag 2022-08-17 16:40:02 -06:00
3259ab2d41 tempodisplay: correctly redisplay tempo map stuff after adding a BBT marker 2022-08-17 16:39:32 -06:00
419f934ecd support group-override when starting a new Range selection 2022-07-14 17:28:07 -05:00
8ead1439d8
Fix ruler/canvas separator
The track-header (gtk) is packed with 1px box spacing. This
is added at the top of each box (best seen by looking at the
group-tab vs track-header alignment in the editor).

However the actual track separator line on the canvas is at the
bottom of each track, aligning with the top of the next track
or automation-lane.

The first track however lacks a separator at the top, which
needs to be provided by the ruler. Once the canvas is scrolled
this ruler/canvas separator overlaps with the bottom separator of
each TAV.

Using ruler Rectangle::set_outline had various issues.
The outline extends outside the rectangle. It bled into the
video-timeline instead of the canvas' top y-axis pixel.

Also the separator was above the video-timeline, not above the
canvas. Hence a dedicated separator Line is preferable.
It also provides a consistent separator if no rulers are visible.
2022-07-06 20:50:06 +02:00
ecf554aa4a tempo display: basics of updating MIDI during tempo-related drag operations 2022-06-28 11:44:25 -06:00
bf87916fb1 tempo display: further simplifications to handling map changes
When a tempo map change originates from a drag, we know the required redraws have
already been done. Use a new bool member, ignore_map_change, to tell the Editor
to ignore the map change signal. For all other map changes, do the full reset.
2022-06-28 10:16:31 -06:00
6dfaac9e94 redesign the mechanisms for updating tempo/meter display during drags and other map changes
We now simply move markers during drags, and do not seek to create/delete markers.

When the map is changed, we rebuild the markers from scratch. This might need optimization to avoid doing
when the editor itself changed the map.
2022-06-27 22:21:27 -06:00
944b0ed6e0
Prefer const iterators when container does not change 2022-06-26 13:55:46 +02:00