Commit Graph

821 Commits

Author SHA1 Message Date
Ben Loftis 256549e0c7 correctly abort the undo record when Editor::clear_markers (et al) have no effect
* move abort_reversible_command into the correct bracketed location

* check for missing _session at top of function to avoid unnecessary nesting

* this fixes an undo 'assert' when an action like "clear xrun markers" has no effect

* this was likely a copy+paste thinko since they are adjacent in the code
2022-05-10 15:47:56 -05:00
Ben Loftis dbd80a6dd0 fix thinko in command name ('set session END' not start) 2022-05-10 15:47:56 -05:00
Ben Loftis 07b468b108 fix undo for toggle_region_mute 2022-05-10 15:47:56 -05:00
Ben Loftis dbe49ae8c4 editor::paste fix a thinko in undo nesting 2022-05-10 15:47:56 -05:00
Paul Davis ae32daa148 allow ARDOUR::Filter to be used with MIDI regions/sources 2022-04-20 17:11:29 -06:00
luz paz 74453cac86 Fix user facing typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-04-10 19:58:47 -04:00
Mads Kiilerich d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Paul Davis 7293904e53 use new TempoCommand when putting tempo map ops into undo/redo history 2022-04-08 11:58:04 -06:00
Paul Davis 883a44e6a4 temporal: TempoMap::use() returns a const ptr to enforce semantics (GUI version)
This commit leaves two issues outstanding:

1. unclear/ugly semantics for drag operations that reset the GUI thread's tempo map to the writable copy
2. undo/redo for the tempo map

These will be addressed in future commits
2022-04-08 11:58:04 -06:00
Paul Davis a3c5db5d51 ensure that non-drag track height changes cause a call to Editor::redisplay_track_views() 2022-04-05 20:52:10 -06:00
Paul Davis 1999a3aae8 explicitly discard the return value from ::process_redisplay_track_views() 2022-04-05 20:52:10 -06:00
Robin Gareus 9c9f1dbf82
Fix nudge-playhead-backward 2022-03-30 03:08:16 +02:00
Paul Davis e3b66825eb superclock_ticks_per_second: GUI edition changes 2022-03-17 14:15:59 -06:00
Ben Loftis f0372e0b17 ripple (gui part) ripple_marks should work without a plist (Range cut) 2022-03-14 21:35:35 -05:00
Ben Loftis f8f53a4cae ripple (gui part) changes to Range + RippleAll behavior on markers
Range->Delete is the most common type of ripple-editing imho
... so we need to implement ripple_marks for that common action

* markers inside a deleted range should be removed
* range markers (start+end) need special handling
* remaining markers to the right can be rippled by libardour
* implement undo
2022-03-14 21:35:35 -05:00
Ben Loftis 01ef5a5b24 ripple (gui part): should_ripple_all() encapsulates modes Ripple+RippleAll 2022-03-14 19:26:41 -05:00
Ben Loftis 2eb286eb76 make range+region Bounce dialogs more consistent
* cleaner table layout
* explicit options for bouncing to Trigger and Clip List
* any bounce is added to Source list, so remove that from menu
* format context menus to match "(with processing)"
* use same code structure where possible
2022-03-13 19:42:00 -05:00
Robin Gareus 4048bcc6b6
Fix crash when freezing track
The freeze threads needs a thread-local tempo-map to call
Route::bounce_process which runs processors.
2022-03-09 17:47:36 +01:00
Robin Gareus 9cac17ea7d
Speed up silence-stripping when there are many silent chunks
Previously every region fragment was added one at a time,
with each emitting signals and updating the GUI. If there are a
few thousand regions Ardour can freeze for a significant amount
of time.

There is still the issue that the GUI freezes after the progress-bar
reached the end: consolidate overlapping ranges after analysis, then
add regions.

And Playlist::flush_notifications still emits
RegionFactory::CheckNewRegion() for every region individually
and RegionListBase::add_region becomes the bottleneck.

But at least adding 7k regions now returns in under 5 minutes
instead of taking over an hour.
2022-03-08 16:31:47 +01:00
Robin Gareus 080bfdc2d0
Simplify grid next/prev logic
Round[Up/Down]Always does not need an offset to avoid snapping
to the same position.
2022-03-04 19:39:02 +01:00
Robin Gareus 9dabe047f1
NO-OP: clean up and consolidate PH next/prev grid code 2022-03-04 18:29:43 +01:00
Ben Loftis 7cc3fbaccf editor_ops: bounce to trigger: warn user when they try to bounce a range to an already-populated trigger slot 2022-03-03 16:49:28 -06:00
Paul Davis 685a3ebc7e do not use a write copy of the tempo map when not planning to modify the map 2022-02-20 09:31:23 -07:00
Ben Loftis a8cf442bc9 pixel-pushing: clean up the dialog for Range->Bounce to Trigger Clip 2022-02-11 15:32:00 -06:00
Ben Loftis a02689f41e Range->Bounce to Trigger Clip: use UISTate api to set tempo of clip
* also use the desired name without the extra stuff that bouncing adds to the filenam
2022-02-11 15:32:00 -06:00
Paul Davis 17e5667216 triggerbox: use translatable marker name function in GUI 2022-02-11 11:33:43 -07:00
Robin Gareus 46b8b0963e
Fix bounce_range_selection trigger slot dropdown 2022-02-10 00:43:09 +01:00
Paul Davis 604652b7d6 fix duplicate behavior
We were adding the "span" value to the position before calling
Playlist::duplicate(), but it does that internally.
2022-02-03 20:51:04 -07:00
Ben Loftis da09d1dd9a terminology: the content in a trigger is a Trigger Clip 2022-01-31 20:25:06 -06:00
Robin Gareus bfc3f6fa4f
Bouncing to trigger enables Cue-Page visibility 2022-01-31 21:53:57 +01:00
Robin Gareus 0b055ad66e
Add option to copy bounced regions/range to clip library 2022-01-29 20:48:23 +01:00
Robin Gareus 5cebd64924
Fix fit tracks
The track-height change needs to be applied so that
vertical_adjustment max range is set correctly.
Otherwise vertical_adjustment.set_value() may fail
or scroll to the wrong position.

In 5b3eacd421 `redisplay_track_views()` was moved from
EditorRoutes to Editor. The call was delegated to the idle
thread, potentially collecting multiple calls before performing
the update.

This resulted in "Fit selection" to set the y-offset before the
height-change was applied.
2022-01-27 19:57:58 +01:00
luz paz 364f2f0788 Fix typos in gtk2_ardour/ directory
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
Paul Davis 4c433106a4 add interview mode to preferences and fix up implementation 2022-01-24 11:29:36 -07:00
Paul Davis 2152e7ba3b triggerbox: change FollowActions into an object with a target list (GUI edition) 2022-01-19 15:50:55 -07:00
Robin Gareus 96137739a7
Reduce includes required for Selection
Previously a triggerbox_ui.h change triggered a complete UI
rebuild. This follows the concept of other editor_selection
lists which use forward declarations.
2022-01-11 05:21:51 +01:00
Ben Loftis 233491c88a Fix Consolidate-without-processing abort 2021-12-31 13:44:52 -06:00
Ben Loftis bc8994d5c8 trigger_ui: implement Audition Action (press A to audition, spacebar to stop) 2021-12-23 22:35:52 -06:00
Robin Gareus 216ff53bb9
C++11 Lambda FTW! 2021-12-24 02:13:50 +01:00
Robin Gareus cf5dcd12ee
Use a callback instead of subtractive char math 2021-12-24 02:13:03 +01:00
Robin Gareus d78364f90b
Un-hardcode number of trigger-slots 2021-12-24 00:31:01 +01:00
Robin Gareus b2b9c38bc3
Leave a note about trigger-slot IDs using western alphabet
Ideally these would be translatable into Cyrillic, Greek,
Chinese or any other alphabet (and not be limited to 26 either).
2021-12-24 00:31:01 +01:00
Robin Gareus 541b91d293
Implement Bounce Range to Trigger 2021-12-23 22:39:57 +01:00
Robin Gareus 83d8560490
Fix bound-range dialog label
Gtk::Label leaves scope, but must remain until the dialog
is destroyed.
2021-12-23 22:32:36 +01:00
Robin Gareus 3c03e4951e
Use updated temporal API 2/2 2021-12-11 15:51:31 +01:00
Ben Loftis 84111a343e Deinterlace MIDI: gui part 2021-11-19 10:28:37 -06:00
Paul Davis b6f290add2 timeline type changes for new ripple code and post-conflict-resolution fixups 2021-08-13 12:51:36 -06:00
Paul Davis bb87f33506 fix timeline types in region/cue marker operations 2021-08-13 12:51:36 -06:00
Paul Davis dec3b9bc2e cleanup mess from manual rebase against master (GUI edition) 2021-08-13 12:51:35 -06:00
Paul Davis 49424ab0e3 Region::_start should be a timepos_t not a timecnt_t (GUI edition) 2021-08-13 12:51:34 -06:00