Commit Graph

517 Commits

Author SHA1 Message Date
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
Robin Gareus 2ed8fd2723
Pixel-pushing: vertically align special busses
The mixer's track area has a border with shadow (again).
This breaks vertical alignment with monitor-section,
master, foldback busses.
2021-04-03 22:27:05 +02:00
Robin Gareus 1bffdfc334
Open add-route dialog on double-click or context-click 2021-03-28 20:39:34 +02:00
Robin Gareus 8fbde5860d
Make group tabs insensitive when spilling sends
* Mixer layout does not change when spilling sends
* Tabs don't automatically show after spill_nothing()
  even if `show-group-tabs` is off
2021-03-28 17:46:01 +02:00
Robin Gareus 8402dd4888
Spill only direct feeds
When using chained sends, only show the direct parent:
    track A -> bus 1 -> bus 2
Showing sends feeding "bus 2", previously also displayed
"track A". However only "bus 1"' mixer-strip changed to show
the send controls.

We should not propagate displayed deliveries upstream, since
there may be ambiguities. There could be an additional send:
     track A -> bus 2
2021-03-27 21:30:56 +01:00
Robin Gareus 212b08b422
Foldback: remove unused processor actions
Also since foldback-busses are not selectable AxisViews,
various keyboard-shortcut operations cannot be performed
from the mixer-context. However the processox-box itself
provides these actions for the fold-back bus.
2021-03-26 23:52:12 +01:00
Robin Gareus a94c0d62a6
Foldback: Con't work to remove unused mixer-strip code 2021-03-26 23:49:36 +01:00
Robin Gareus cf7aad8a8a
Fix typo in previous commit 2021-03-26 15:04:21 +01:00
Robin Gareus ada1b9bce5
Show shaded plus icon on scroller-base background (rec, mixer) 2021-03-26 14:36:50 +01:00
Robin Gareus 04a40140dc
Remove "add route" button from recorder and mixer
This GTK button style is out of place in both contexts.
Furthermore it is inconsistent to not have the same button
in the editor (there is a dropzone).
2021-03-26 14:35:17 +01:00
Robin Gareus ce28065421
Foldback: refactor spill logic
Prefer to reuse spill logic from the mixer-ui.
This allows to spill routes directly after spilling
foldbacks. Previously that resulted in FB "show sends"
to keep flashing even then no foldbacks were spilled anymore.

It also simplifies various aspects of foldback prev/next
logic.
2021-03-25 21:38:10 +01:00
Robin Gareus e204095b71
Fix mixer initial group-tab display 2021-02-07 12:06:26 +01:00
Robin Gareus 2bf9014ba1
Fix crash when detaching Editor or Mixer w/o session
Mixer_UI::show_window(), Editor::use_own_window() use
`show_all()` and the fixup items that should be invisible.
This involves a call to `parameter_changed ("show-group-tabs");`
2021-02-07 00:09:20 +01:00