Commit Graph

529 Commits

Author SHA1 Message Date
Robin Gareus 2a928dae19
Vapor: Simple Export GUI 2024-01-06 20:28:42 +01:00
Robin Gareus 7228144d6e
Vapor: GUI support to add Surround Bus 2024-01-06 20:27:03 +01:00
Robin Gareus 9cc966120c
Consolidate internal bus checks (2/2) 2024-01-06 20:21:54 +01:00
Paul Davis a5ac6e097e switch no-strobe from cmdline to UI config preference 2023-11-10 15:50:44 -07:00
Paul Davis 9c5600ad87 no strobe for mixer ui meters 2023-11-10 10:56:03 -07:00
Robin Gareus c162aa7aca
Consistently use context-menu button action
This fixes an issue where brining up a menu can directly activate an
action in the menu. Notably on macOS.

Nathan reports that this may also address #9515

Note: mac touchpads are not affected since right-click there is
effectively a "press and hold".
2023-10-31 20:16:23 +01:00
Paul Davis e9585ad530 objects don't have a time domain, they have a time domain provider (GUI) 2023-08-02 15:22:52 -06:00
Paul Davis 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
Paul Davis 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
Robin Gareus 295dbd8e1e
Make RCU reader return a const pointer (omnibus commit) 2023-04-08 00:15:37 +02:00
Paul Davis 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
Robin Gareus a4d9fb4935
Fix saving favorite plugin order
This broke in 7942897d93. Clearing the list triggered
favorite_plugins_deleted() for each plugin. This resulted
in an empty list being saved to disk.
2022-12-27 16:53:01 +01:00
Robin Gareus d808315e2a
Offer dedicated alternatives for Delete/Backspace
This follows Processor Box:
 <Binding key="Delete" action="ProcessorMenu/delete"/>
 <Binding key="BackSpace" action="ProcessorMenu/backspace"/>
2022-12-02 19:50:39 +01:00
Robin Gareus 9153521f4a
Do not highlight momentarily recalled scenes
Since momentary override is a singleton, it needs to remain
GUI only, and not a session API available to any UI.

The middle-clicked button is rendered as pressed. So it is
already obvious and the Changed() signal that is emitted
when temporarily restoring a scene can simply be ignored.
2022-11-10 21:03:00 +01:00
Robin Gareus 235d51a723
Revert "MixerScenes: implement 'undo' function for mixer scene recalls (libardour)"
This reverts commit a40c8d8e9a.
This reverts commit 01c7e14c6e.
This reverts commit 162a8c00b3.
2022-11-10 20:54:12 +01:00
Ben Loftis 01c7e14c6e MixerScenes: highlight momentarily recalled scenes by using libardour 'undo'
* also moves 'momentary' into libardour so it can be accessed by other UIs
2022-11-10 09:13:56 -06:00
Ben Loftis 70251c758d MixerScenes: show last-selected scene (gui part) 2022-11-08 17:30:07 -06:00
Robin Gareus 64dc16a460
GUI for partial mixer scene restore 2022-10-18 00:08:36 +02:00
Robin Gareus 1b23021303
Replace AutomationControlSet with ControllableSet (2/2) 2022-10-18 00:08:35 +02:00
Ben Loftis f6630ad31c Fix tooltip for mixer scenes 2022-07-29 11:13:24 -05:00
Robin Gareus baeb5cbafd
Consistent mixer-scene query dialog (use Yes/No question) 2022-07-07 17:07:46 +02:00
Robin Gareus 6631273356
Fix inverted mixer-scene-clear Cancel/OK dialog response 2022-07-07 16:49:36 +02:00
Ben Loftis 1965e90c24 tooltips: enumerate the various modifiers for mute, solo, scenes
TODO: monitor buttons, maybe more
2022-06-17 11:07:58 -05:00
Ben Loftis a92af7768d modifiers: implement is_momentary_push_event for momentary buttons (gtk2 part) 2022-06-17 11:07:58 -05:00
Robin Gareus 5d10fd84eb
Reduce mixer redraws, and fix scrolling to newly added tracks
PresentationInfo::Change (Properties::selected) is emitted and
handled before Mixer_UI::add_routes() is called. At that point
in time the MixerStrip(s) to be selected may not exist.
Visual selection state was lost.

Furthermore move_stripable_into_view() calling translate_coordinates()
only works after GTK has completed the resize operation.
This lead to the mixer scrolling back to the left edge when creating
new tracks.

Also each selection change caused all tracks to be re-packed.
Now redisplay_track_list() is only called if visibility or order
changes. This signficanly improves performance with large sessions.
2022-06-15 02:41:45 +02:00
Robin Gareus 4296be2c70
Ignore double-middle-click when restoring scenes
Previously rapid middle-clicks could result in creating
a temporary mixer_scene while one is already in use.
2022-06-09 02:25:55 +02:00
Ben Loftis e5c19994c9 mixer scenes: reminder for mac trackpad users: Ctrl+Alt is a middle-click 2022-06-07 16:35:14 -05:00
Ben Loftis 10bbcd167d Mixer Scenes: scene buttons should look 'pushed in' when clicked
* trigger the actual recall on button_release
2022-06-02 13:53:45 -05:00
Robin Gareus eb0e9616f0
Implement temporary mixer scene restore, clean up code 2022-06-02 19:07:28 +02:00
Robin Gareus 9ef9277d47
Clear mixer scene buttons when closing session 2022-06-02 00:52:25 +02:00
Robin Gareus d79a1aaa98
Fix mixer-scene signaling
Mixer-scenes are session objects, and the signal must not be
connected across session instances.

This fixes a read-lock after write-lock when switching snapshots:

 Session::set_state -> MixerScene::set_state ->
 MixerScene::set_name -> Change(); /* emit signal */
 ... -> Mixer_UI::update_scene_buttons -> Session::nth_mixer_scene
2022-06-02 00:19:32 +02:00
Robin Gareus 69179117a5
Amend ca8dddcd, handle nullptr mixer scenes
This fixes an assert/crash when loading sessions without scenes.
Also only show "Right-Click to Store" label if all slots are empty
2022-06-01 16:57:21 +02:00
Ben Loftis ca8dddcd37 Mixer Scenes: first-draft GUI for mixer scenes 2022-06-01 08:53:50 -05:00
Ben Loftis b3e4f243b0 Mixer Scenes: tweak action names; add mother-may-i for scene overwrites 2022-06-01 08:53:50 -05:00
Robin Gareus 14cf7e4c23
Add UI actions to save/recall mixer-scenes 2022-05-23 16:13:04 +02:00
Mads Kiilerich 7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Mads Kiilerich 09c6e68ae8
gtkmm: use append() instead of deprecated Gtk::ComboBoxText::append_text() 2022-04-08 21:10:56 +02:00
Mads Kiilerich a86aa31747
gtkmm: use get_visible() instead of deprecated Gtk::Widget::is_visible() 2022-04-08 20:20:10 +02: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 ca22ba77e1 Constification: make Stateful::get_state() const, with all other required const-ness added (GUI) 2022-04-06 21:56:59 -06:00
Robin Gareus 08acf42676
Correctly restore mixer-ui pane sizes
Pane::set_divider() constrains the divider so that widget
minimum sizes are honored.

Initially the mixer is empty and the tab has width of ~110px
(just scroll window). Pane::on_size_allocate() calls set_divider()
before actual mixer-strips are added and before the mixer window
size was restored. This incorrectly constrained pane sizes.
2022-03-29 00:31:15 +02:00
Ben Loftis 663a843484 Add explanatory text to '+' symbol on mixer and recorder pages 2022-01-30 13:44:41 -06:00
Robin Gareus 7623834421
Simplify treeview resync
The session marks itself as modified when the order-key
changes and also ensure_stripable_sort_order.
2022-01-27 01:28:49 +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
Robin Gareus 056189c76c
Clean up DnD, use MIME-types
This is in preparation for allowing to drag trigger-regions
or trigger-slots. Those will not use a static singleton
PublicEditor API.

Additionally this constrains Ardour-internal drags to Ardour
(via Gtk::TARGET_SAME_APP).
2022-01-10 21:29:29 +01:00
Paul Davis 73e19c8fa7 add triggers to trigger tracks 2021-08-13 12:51:36 -06:00
Paul Davis d671dc0fa1 plugins use their route's automation time domain (GUI edition) 2021-08-13 12:51:33 -06:00
Paul Davis 7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Ben Loftis db6f8aa215 Fix for Tags not being searched in the Favorite Plugins search-box 2021-08-03 13:56:19 -05:00
Robin Gareus 5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00