13
0
Commit Graph

16783 Commits

Author SHA1 Message Date
a7a24def36
region groups: prioritize explicitly grouped and ungrouped regions 2023-08-10 16:55:25 +02:00
8818d8484e
region groups: allow the user to explictly group and ungroup regions 2023-08-10 16:55:25 +02:00
fe2473b0cc
region groups: some actions must retain a group-id for the life of the op 2023-08-10 16:55:25 +02:00
b3a5e0b2b1 API change for the start of making tempo mapping undoable (GUI) 2023-08-07 16:33:16 -06:00
afe5331a0b pbd: fairly unconscionable that Command in libpbd is not namespaced, so now it is 2023-08-07 16:33:16 -06:00
1f5db4234c markers: no tooltips for metric markers 2023-08-02 15:23:43 -06:00
16dfb95617 tempo/meter edits: no position fields if marker is part of a BBT marker 2023-08-02 15:23:43 -06:00
f9e1357fed editing a MusicTimePoint as a TempoPoint (from GUI) now operates as it should (or closer) 2023-08-02 15:23:43 -06:00
e36dfa1f09 change display and interaction for BBT Markers
Draw regular tempo/meter markers for BBT markers, and move them when BBT marker is dragged

This will (does) allow regular editing workflow for the tempo/meter at at BBT marker
2023-08-02 15:23:43 -06:00
e051b0cad0 remove time domain items from track header menu (reason in comment) 2023-08-02 15:23:43 -06:00
7609df4418 hide tracks-follow-session option
Until we can do elastic-audio and audio-timed MIDI, this option needs to remain hidden
2023-08-02 15:23:43 -06:00
bd341bdd0b expose new-tracks-follow-session time in session properties editor 2023-08-02 15:23:42 -06:00
908c530834 region property editor uses clock mode based on region time domain
Still needs to track changes
2023-08-02 15:23:42 -06:00
a4b43a6f69 gui support for changing tracks' time domain 2023-08-02 15:23:42 -06:00
9461911a86 editor uses the session default time domain as its default time domain 2023-08-02 15:23:42 -06:00
d14a3b924e locations now follow session time domain, always (probably) (GUI edition) 2023-08-02 15:23:42 -06:00
693bdbeed7 add time domain menu to track header menu 2023-08-02 15:23:42 -06:00
6fb57e0213 slightly reorganize Session properties dialog and add default time to Misc 2023-08-02 15:22:52 -06:00
e9585ad530 objects don't have a time domain, they have a time domain provider (GUI) 2023-08-02 15:22:52 -06:00
e430b54554 class name change to clearly disambiguate Evoral::ControlList (a list of time/value pairs) from lists of Controls in libardour (GUI edition) 2023-08-02 15:22:52 -06:00
30d2d7824e selection-as-group is not an option 2023-08-02 14:11:06 -06:00
1f5a9c4444 correctly redraw marker lanes
Old code just redrew them at the same timeline position (which may
or may not be a different pixel position). They need to be updated
with the underlying position of the marker they represent
2023-08-02 14:11:06 -06:00
darless
9f4a0b444e
Fix #9421: F7 tied to velocity 96 but it was not present in the velocity menu 2023-08-01 22:19:24 +02:00
1d31ace29d adjust GainMeter* API and design to handle stripables, not just routes for selection/group behavior 2023-07-31 21:12:00 -06:00
200194b134 use identical logic for gain/trim controls as others when it comes to group/select stuff 2023-07-31 18:31:03 -06:00
b338b946b8 remove ill-though assert() - VCAs have gain-faders too 2023-07-31 13:54:00 -06:00
fa38a14120 GUI changes to support new selection/group logic 2023-07-31 13:36:25 -06:00
d1fe9f2846 fold solo-safe and solo-isolate controls into selection-is-group logic 2023-07-31 10:58:56 -06:00
2cf18120c6 use selection-as-group logic for monitoring choice control 2023-07-31 10:58:47 -06:00
78e023fcc2 deselecting a grouped track no longer deselects the entire group
I believe this to be more useful behavior than the previous state of affairs
2023-07-28 17:13:29 -06:00
16e1188a2f move logic for use-selection-as-group into ARDOUR_UI and use it everywhere 2023-07-28 09:50:23 -06:00
639c206432 fix thinko with selection-as-group for GainMeter 2023-07-27 13:31:12 -06:00
fe7c36c04b allow selection-as-group control of trim controls 2023-07-27 13:30:50 -06:00
c4838f5d87 remove RouteGroup method from RouteUI::maybe_use_select_as_group()
No longer necessary, after logic change.
2023-07-27 13:28:51 -06:00
8f70356b81 fix group action disposition for solo/mute/recenable 2023-07-27 11:44:11 -06:00
f400c166cc change for logic for when to use selection-as-group 2023-07-27 11:43:43 -06:00
c9a58bfae1 consolidate rules for selection-as-group and extend to solo/mute/recanable 2023-07-26 21:06:19 -06:00
e0a491f0ee NO-OP: add braces mandated by coding style guide 2023-07-26 21:05:35 -06:00
d79e0e9039 add preferences dialog item to control selection-as-group 2023-07-26 18:54:09 -06:00
70e97e2724 move region information preferences into Appearance
This makes some space on the Editor tab/page, and they were more appearance
related anyway
2023-07-26 18:39:48 -06:00
acac9ac006 add and use UI config variable to decide whether selection-as-group is allowed 2023-07-26 18:30:59 -06:00
bc407151cd fix thinko with selection-based gain control 2023-07-26 18:15:42 -06:00
5497c4e74e extend use-selection concept to solo control on mixer strip 2023-07-26 18:09:26 -06:00
e60c1840cb remove modifier for use-selection on gain controls
The condition is now: use selection if route is not in a group that shares gain
2023-07-26 18:09:04 -06:00
6ba69cfd57 gain slider: correctly new push/pop group for use selection 2023-07-26 16:42:12 -06:00
d7ed491f75 gain controls: tenatively use new "use selection" feature 2023-07-26 13:39:05 -06:00
3c2112abf5 widgets & GUI: Start/StopGesture signals should pass on GDK event state 2023-07-26 13:11:52 -06:00
darless
e28eaa843d Fix #8857: Remove snap from decision making about number of divisions 2023-07-25 08:51:35 -06:00
dfc52fd5fb
Plugin analysis: cairo coordinate system fixes 2023-07-18 18:13:34 +02:00
ec7d502959 cairo single pixel line offset fix, part 2
This will need careful visual inspection of the items drawn by the
affected code to make sure they are still precisely as intended
2023-07-17 20:55:13 -06:00
b8af596a92 update all marker positions after a tempo map change 2023-07-15 11:08:45 -06:00
460266de13 NOOP: whitespace fix 2023-07-15 11:08:45 -06:00
John Emmas
35c04d0ee7 Add a missing namespace specifier 2023-07-15 12:55:30 +01:00
509efdb290 temporal: refactor ::get_grid() for performance reasons
the API now provides the option to call ::get_grid() with an iterator which may
be re-used on subsequent calls. This avoids unbounded O(N) "walks" from the
marker preceding the start point of the grid to the start point.

This commit also includes "fast-path" code for the common case of a single
tempo and single meter
2023-07-14 13:03:36 -06:00
ae5755dbe5 do not mark sections of menu/action paths as translatable, since they are not 2023-07-14 13:03:36 -06:00
ed869da97e reserve space for tempo map grid (GUI side) 2023-07-14 13:03:36 -06:00
f41505a8c6 add Editor::count_bars() after removing it from libtemporal 2023-07-14 13:03:36 -06:00
df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
2c48aabe08
Handle race condition when removing route before routeUI
This fixes a crash when removing the monitor section.
The monitor route goes away, but the GUI remains. The
IOButton may still process previously queued
cross-thread signals.

In many cases this was not an issue since the route's
memory was not immediately released or shared_ptr
destruction only happened a short time later.
2023-07-14 19:03:32 +02:00
bedab69338
Pin Dialog: hide send polarity invert 2023-07-14 16:59:54 +02:00
8145e92b43
Clarify Control point edit dialog messages, add tooltip 2023-07-11 01:16:58 +02:00
4c8b414fb6
Allow to numeric ctrl point edit to apply to all selected points 2023-07-11 00:53:48 +02:00
ac68fcb880 automation drawing: fix right-to-left free drawing 2023-07-10 14:39:23 -06:00
f6f1f3393d automation drawing: fatter line 2023-07-10 14:38:58 -06:00
d12aa315fc automation drawn: ensure the right-to-left drawn lines are ordered correctly 2023-07-10 14:23:39 -06:00
9d5b6a78d5 automation drawing: better line color 2023-07-10 14:16:59 -06:00
25d17e857f when free-drawing straight lines, allow retrograde motion 2023-07-10 13:42:25 -06:00
57167dafbe use configurable thinning factor, not a hard-coded constant 2023-07-10 13:42:06 -06:00
67d9fa885a use mid-drag key events to allow Alt to force a line break 2023-07-10 12:22:16 -06:00
a14c534d16 dragging: add possibility of handling key events mid-drag
Currently only called from a canvas automation track event handler.
2023-07-10 12:21:27 -06:00
6453049c0a automation drawing: add point at grab start & use new ControlList API for speed 2023-07-10 11:20:47 -06:00
7f653de3e2 automation drawing: don't draw staircases when there are no staircases 2023-07-09 22:14:38 -06:00
c584bfd374 automation drawing: thinning does not work well with snapped-drawn lines
Also, adding points to a ControlList can fail and that's OK
2023-07-09 22:10:18 -06:00
caa278ae55 fix reverse drags and a compiler warning
Not quite sure what to do if we fail to add a point, yet
2023-07-09 21:01:22 -06:00
0a0a882f5a snapping, straight lines, and merge drawn points to list for auto draw 2023-07-09 20:42:09 -06:00
e0c24f5bcf automation drawing: stay in your lane and keep moving in the same direction 2023-07-09 18:12:08 -06:00
86d5e2472c automation drawing: we have the squiggly 2023-07-09 17:39:32 -06:00
78bca64a81 fix (and maybe break) two Drag classes that used the wrong name for setup_pointer_offset()
This might have unexplored consequences
2023-07-09 17:39:11 -06:00
6743c09b4a change return type from ptr to reference for AutomationTimeAxis::base_item() 2023-07-09 17:37:22 -06:00
94f413c399 basic empty skeleton for automation draw drag 2023-07-09 16:33:16 -06:00
0c8fd48d6f velocity lane: appropriately hide automation controls until we have line automation 2023-07-08 17:18:14 -06:00
2a1d4ffce9
Add note about LuaSignal for windows 2023-07-05 19:38:51 +02:00
9b8040a9f4
Add Lua signal emitted when editor selection changed 2023-07-04 21:13:52 +02:00
b757dd9fd8
Vertically center markers
see also 64d633cd26
2023-07-03 18:35:56 +02:00
7e121f4e13
Fix alloc-dealloc-mismatch (malloc vs operator delete) 2023-07-02 23:54:16 +02:00
168b67bd17
Allow to initiate Rubberband-drag on blank Trackview 2023-07-02 21:19:46 +02:00
1f4490fff9
Allow to select region-gain points via rubber-band drag 2023-07-02 20:47:41 +02:00
64d633cd26 amend/fix b490f7d2a1 to correctly (?) place marker text 2023-07-01 21:07:25 -06:00
d688af76c0 clean up mapping bar context menu, extend with clear tempos 2023-06-30 15:50:47 -06:00
bfa13ad714 temporal: reference time for BBT_Argument is always superclocks (GUI) 2023-06-30 12:10:50 -06:00
e756786a13 bbt markers: remove tempo&meter marker on deletion 2023-06-28 18:05:34 -06:00
ac491fce0e bbt markers: now have an (insensitive) tempo and meter marker visible
probably needs more work for event handling on the tempo and
meter markers.
2023-06-28 18:03:38 -06:00
b490f7d2a1 markers: fix position of BBT marker text (tiny tweak) 2023-06-28 18:03:38 -06:00
c53a476f15 allow drawing automation control points in mouse object mode
This is a tentative change and if it proves unwise we can back it out.
I just find it awkward to have to change modes to draw when it is
completely obvious whether I am drawing or not.
2023-06-28 13:44:59 -06:00
99c87e0614 no smart mode behavior for automation region views (it makes no sense) 2023-06-28 13:44:59 -06:00
36769dd94c part 2 of showing region selection in MIDI CC (automation) tracks 2023-06-28 13:44:59 -06:00
64b08a1c70 when a parent (audio/MIDI) regionview is selected, raise matching AutomationRegionView
Currently, we only use AutomationRegionView to show MIDI CC data
2023-06-28 13:44:59 -06:00
78037a532c when displaying region selecting, compare regions not regionviews
This worked before because nothing happened to AutomationRegionViews
when an AudioRegionView or MIDIRegionView was selected, and so
testing based on the regionview worked (the potential RV could
be the actual RV).

But when displaying region selection (in any way) on other TimeAxisViews,
the correct test is whether the RegionView shows the same region
as the selected region(view).
2023-06-28 13:44:59 -06:00
ed48758fb6 NO-OP: add comment 2023-06-28 13:44:59 -06:00
e54e24a7a0 no need for two raise-to-top; set_velocity_mode() will do it 2023-06-27 14:07:47 -06:00
58a6fcfe37 lollis: note selection should move corresponding lolli to top 2023-06-27 14:07:31 -06:00
ce1ec1107c fix layering of automation views
This code is awful, and ought to be restricted only to velocity lanes by
a better design
2023-06-27 12:53:08 -06:00
294de8d64f no automation line event stuff for velocity tracks (for now) 2023-06-27 09:42:14 -06:00
e6b4d38e52 remove debug output 2023-06-27 09:21:56 -06:00
1febe07480 lollis: use layering to enable editing of overlapping regions 2023-06-27 09:19:29 -06:00
f7176b411e lollis: fix crash when a note is removed 2023-06-26 16:28:32 -06:00
57fc25c28d lollis: tweak color of dragging line (still not sure about this) 2023-06-26 14:18:18 -06:00
7dc532a646 lollis: only allow velocity editing on currently selected region 2023-06-26 14:18:18 -06:00
6ef84ca376 increase transparency of velocity ghost regions 2023-06-26 14:18:18 -06:00
b3de53eb95 when a playlist is relayered, relayer ghost regions too 2023-06-26 14:18:18 -06:00
296d0756a1 lollis: add left/right|earlier/later outlines to ghost region 2023-06-26 14:18:18 -06:00
744208f556 lollis: no more channel-based choice, just a single check menu item like gain/pan/etc. 2023-06-26 14:18:18 -06:00
60256282e3 lollis: make a single drag be represented by a single Command object (for undo/redo) 2023-06-26 14:18:18 -06:00
006779d4c3 lollis: better selection algorithm during drag, plus drawn line 2023-06-26 14:18:18 -06:00
6ea7e8c8f4 improve button up/down tracking during velocity draw drag 2023-06-26 14:18:18 -06:00
6d4bbae48c prototyping mouse-drag-paint velocity 2023-06-26 14:18:18 -06:00
31de7e93bf lollis: show note selected status (using note selection outlien color) 2023-06-26 14:18:18 -06:00
f3e996bdb7 NOOP: remove unnecessary namespace qualifier
BTW, ColorMode needs to move from libardour into the GUI
2023-06-26 14:18:18 -06:00
25bb43e285 lollis: color management during drag, and verbose cursor 2023-06-26 14:18:18 -06:00
c75b9a11ef lollis: fix drawing and positioning glitches 2023-06-26 14:18:18 -06:00
62bb8ccbeb removed unnecessary files 2023-06-26 14:18:18 -06:00
01381dad77 lollis: remove unnecessary drag object member 2023-06-26 14:18:18 -06:00
2d9a2ad668 lollis: also adjust velocity bars during the drag 2023-06-26 14:18:18 -06:00
f7130f5c02 lollipop drag: move all selected notes 2023-06-26 14:18:18 -06:00
077c5ba5d1 NO-OP: add helpful comment 2023-06-26 14:18:18 -06:00
cf7ba80fc1 the basics of lollipop dragging 2023-06-26 14:18:18 -06:00
2977205f3a add skeleton for lollipop drags 2023-06-26 14:18:18 -06:00
0a530d3c18 manual fixes following rebase on master 2023-06-26 14:18:17 -06:00
16f682110f local lollippop fix for newer canvas lollipop API 2023-06-26 14:18:17 -06:00
2a8f275174 sort of no-op: change variable name for slightly better legibility 2023-06-26 14:18:17 -06:00
4b155cb946 Revert "file deleted"
The files are back.

This reverts commit c7e3e824d10bf211367a62f69287f6076d36106e.
2023-06-26 14:18:17 -06:00
178917e627 Revert "do not need these files"
Seems that we will have a use for them after all.

This reverts commit f9ec3a952553deefea0a17809a97dc92d5cf6db7.
2023-06-26 14:18:17 -06:00
4305ef34f8 switching between lollis and line now allows lollipop events 2023-06-26 14:18:17 -06:00
5c03ffd6f5 fix assignment/comparison typo 2023-06-26 14:18:17 -06:00
2de0e62695 for velocity automation lanes, make sure ghosts group is on top
otherwise, it's the streamview on top, and that prevents lollipops receiving
events.

this may have to change once the line becomes an option.
2023-06-26 14:18:17 -06:00
60628a62be somewhat active lollipop event handling 2023-06-26 14:18:17 -06:00
f7e97be115 canvas lollipops: object redesign and reimplementation 2023-06-26 14:18:17 -06:00
7e4a3dce01 lollipop pixel pushing 2023-06-26 14:18:17 -06:00
1a4ef77222 C++11 FTW 2023-06-26 14:18:17 -06:00
9089694e36 pops visible and somewhat responsive to note changes 2023-06-26 14:18:17 -06:00
805ba0442f file deleted 2023-06-26 14:18:17 -06:00
b157132807 do not need these files 2023-06-26 14:18:17 -06:00
4bafadc419 steps to an ecology of lollipops 2023-06-26 14:18:17 -06:00
52f10ad2a8 velocity views will be ghost regions 2023-06-26 14:18:17 -06:00
e54e8f3f4c tweaks to GhostRegion to prepare for possible inheritance 2023-06-26 14:18:17 -06:00
ba2f9411e2 oops, remove typo 2023-06-26 14:18:17 -06:00
59ccc9c5ee velocity region views: strip out existing event handling (avoids crash) 2023-06-26 14:18:17 -06:00
9e071f70d7 remove debug output 2023-06-26 14:18:17 -06:00
2797ea9666 remove unusued "MIDI underlay" cruft 2023-06-26 14:18:17 -06:00
fcba147acd remove concept of a velocity time axis view, just use velocity region view 2023-06-26 14:18:17 -06:00
bc60f7492f automation stream view now creates VelocityRegionView when appropriate 2023-06-26 14:18:17 -06:00
5c42f6ea71 copy VelocityRegionView from AutomationRegionView 2023-06-26 14:18:17 -06:00
db055df9d8 add new files 2023-06-26 14:18:17 -06:00
ea6717f041 empty, useless velocity lane for MIDI tracks 2023-06-26 14:18:17 -06:00
6cb4d01f1f add velocity item to MIDI track automation menu 2023-06-26 14:18:17 -06:00
Edgar Aichinger
fbc776de52
fix typos, clean up and complete new time/range section strings, ensure consistent translation of "playhead"
(recreated after broken merge and reset to upstream master)
2023-06-26 13:17:36 +02:00
87ad86d464
More codenames 2023-06-26 13:16:55 +02:00
e1950ec49e Update Russian translation 2023-06-23 03:10:52 +02:00
705321b015
Fix compilation with --luadoc 2023-06-23 00:49:58 +02:00
JungHee Lee
52d488e2ce Update ko.po 2023-06-22 15:49:13 +02:00
a996645ef1
Update plugin-pin dialog when route or plugin name changes 2023-06-22 15:28:37 +02:00
71a83ed199
Fix heap-use-after-free when toggling manual pin-control
When toggling "Manual Config", Route::customize_plugin_insert()
or Route::reset_plugin_insert() emits processors_changed.

This destroyed the widget from which the change was initiated,
in ppw.clear(), leading to a use-after-free in
ArdourButton::on_button_release_event(_GdkEventButton*) ../libs/widgets/ardour_button.cc:995

The PluginPinDialog does not need to refill the widget list
when manual config is toggled, only the PluginPinWidget itself
needs to updated.
2023-06-22 04:50:43 +02:00
92b86d8dd6
Prepare for systemic_hw_*_latency API removal
This API is not used by any backend anymore.
2023-06-21 23:58:46 +02:00
1b6ba4d71d
Improve error message 2023-06-18 16:24:33 +02:00
311c1bff4e
EngineDialog: MIDI config is always directly apply-able
`can_change_systemic_latency_when_running()` is only relevant for
Audio. This allows to en/disable MIDI ports and set MIDI port
systemic latency with the PortAudio backend.
2023-06-18 02:41:06 +02:00
b55575d7c6
Hide snapped cursor when changing edit-point (#7966) 2023-06-17 23:49:42 +02:00
1251b90b66 midi notes: fix visual end point of notes
ArdourCanvas::Rectangle has exclusive end coordinates, so the - 1
is not necessary.
2023-06-15 20:10:32 -06:00
de334c14b1 drop use of Editor::sample_to_pixel_unrounded() in some cases
We want things rounded to the nearest pixel in these (and perhaps all) cases.
2023-06-15 20:10:32 -06:00
a7c21de229
Update Link to VST3 location spec 2023-06-16 01:38:59 +02:00
73ed3bc7e0 midi copy drag: select all new notes after drag
Cut-n-paste worked before, but Primary-drag only selected the dragged note.

This also contains several code changes to use for (auto ...) syntax.
2023-06-14 21:42:23 -06:00
b516d6abf9
Add keyboard shortcut for delete-section 2023-06-14 20:10:33 +02:00
f602618170
Expose delete-section function
(insert-section still remains hidden, it inserts the length
of the selection at the edit-point, it should perhaps insert
at the start of the selection instead)
2023-06-14 19:43:58 +02:00
6319980746
Fix TempoDialog port-list when devices are hotplugged 2023-06-13 17:03:27 +02:00
05c29e25f9 reorder tempo dialog contents, provide non-presented var to control focus behavior 2023-06-12 18:00:21 -06:00
d742e876d1 region/source lists: try to allow primary-(cxv) functionality when editing name/tag fields 2023-06-12 15:34:54 -06:00
a8fdf7315b keyboard: if a magic widget has focus, handle Primary-(x,c,v) specially
propagate first, so that the magic widget can handle things, then activate.

This fixes cut/copy/paste bindings within a "magic" widget.
2023-06-12 14:42:08 -06:00
66e714b476 fix crash when using -D accelerators 2023-06-12 14:41:41 -06:00
04b728fb38 MIDI: fix list editor display of note length (names) (#9371)
Triplets are still not handled well.
2023-06-12 14:01:06 -06:00
50232a23a7 temporal: hide superclock_t variant of TempoMap::metric_at()
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).

Bad API design on my part, apologies.

This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
ac2ed95677
Keep Script-Dialog on top of Script-Manager Window 2023-06-10 21:37:09 +02:00
16030f63a1
Keep Ardour dialog on top of parent 2023-06-10 21:36:31 +02:00
b3f9b38088
Make it convenient to use ASAN 2023-06-10 16:47:38 +02:00
6ac0aae35f
Implement playlist switch undo/redo 2023-06-10 15:03:46 +02:00
322e7c328e
Vkeybd: Bind F5 to F8 keys to velocity 2023-06-10 15:03:09 +02:00
fbce94d55d
Fix playlist use-count 1/2 2023-06-10 03:33:51 +02:00
9486b4e6cb
Fix port-disconnection label w/pipewire (#9355, #9364) 2023-06-09 19:19:41 +02:00
72850d456f implement time-stretch from left of region
Make click & drag in the left-hand half of a region with the Timestretch
tool stretch the region on its left, leaving the end position of the new
time-stretched region in the same place as the end of the original.
2023-06-09 17:57:52 +01:00
96eb7652c9 fix warning from fallthrough comment typo
Fix "warning: this statement may fall through [-Wimplicit-fallthrough=]",
caused by the misspelling of "fallthrough" as "fallthough" in
editor_ops.cc.

Note that if you use ccache, you'll need to clear its cache to actually
get rid of the warning, because the pre-processed file (with comments
removed) is identical before & after this change, and thus won't get
recompiled otherwise.

Fix the equivalent typos in marker.cc too, though in those cases there's
no actual warning, because presently all the fall-throughs are from empty
cases.
2023-06-09 16:45:31 +01:00
586b109f9e
Remove unused variable, fix small memory leak 2023-06-08 23:14:33 +02:00
a5946ba2e2
Fix heap-use-after-free at exit
Deleting _track_canvas_viewport automatically destroys
any child Items. The LocationMarker's group was already destroyed
when ~ArdourMarker() runs and calls `delete group`.

So first delete the marker, then the canvas
2023-06-08 22:50:15 +02:00
44a6069694
Allow nonsensical meter-types for by default for tracks #9341 2023-06-07 22:22:52 +02:00
b4d95eec57
Do play MIDI notes on selection/draw by default
Since 4ad1c19166 "select all" etc no longer plays
all notes, and possibility to get a  loud speaker-blasting
cacophony is greatly reduced.

We may still want to add some additional heuristics, or
special case drawing new notes/hits, but for now this it
is sensible to enable this by default.
2023-06-07 22:22:52 +02:00
91579608b2
Remove duplicate API to find session files (ignore ._ files)
Session::possible_states correctly filters files
and also directly returns sorted base-names.

We can remove the redundant `get_state_files_in_directory`
API now.

see also 193b35e885
2023-06-07 17:37:40 +02:00
04d50ab880
Fix mouse edit-point cursor when dragging
Editor::motion_handler() only updates the snap-cursor
when no drags are active. While dragging, Drag::motion is
responsible to set the cursor accordingly.

In many cases the snap-cursor simply remained stuck at
the most recent position. Since in many cases
(e.g. RubberbandSelectDrag) it makes no sense to show the
cursor, so Drag::start_grab now hides the cursor by default.

This also fixes cases where the cursor is shown, but
was displayed in the wrong location.
2023-06-07 02:38:39 +02:00
3468ffddbb
Update GUI: add new section operations 2023-06-06 02:42:43 +02:00
961c6ae8d7
Prepare UI for section cut/copy API update 2023-06-06 02:42:43 +02:00
54fac9abac
Allow user to not be reminded about tempo-map not being pasted 2023-06-05 20:04:41 +02:00
dc338b7e93
Downgrade error messages that users cannot do anything about
Besides, it can happen under normal circumstances that the
Editor window, or any other window with clocks (prefs) is
visible while no session is loaded.
2023-06-05 15:58:50 +02:00
464df06419
Fix signal emission order ambiguity (record regionview)
A rec-region is added to the streamview just like any other region
(::add_region_view_internal). This subscribes to region->DropReferences.

When the DropReferences is handled first by StreamView::remove_region_view
the corresponding RegionView is destroyed.

This can happen even while recording is still active, eg. when locating
(which stops the current recording).
MidiStreamView::setup_rec_box() is called and crashes in
`dynamic_cast<MidiRegionView*> (rec_regions.back().second);`
due to a use after free.

Strictly speaking this is a logic error in how ::setup_rec_box()
determines if to add or remove the rec-box. But due to the
asynchronous nature of signal emission and transport-state changes
the best solution is to destroy the rec-region at the same
when the RegionView is destroyed.

To reproduce:
 * create a session with a MIDI track
 * disconnect the input (empty MIDI regions are removed)
 * Preferences > Transport > *enable* latched-record-enable
 * use the Dummy backend's MIDI generator
 * connect Hardware > MIDI > MMC -> Ardour misc > MMC in
   OR use JACK-transport to locate while recording.
2023-06-04 21:42:02 +02:00
1feb9b5e89
Streamview: NO-OP, consolidate code 2023-06-04 20:21:41 +02:00