* Consolidate access modifiers
* Remove all public member variables
* Only expose required functions, use private
whenever possible
* Rename private members, prefix underscore
* Remove cruft
This resolves ambiguities of overloaded non-virtual methods
that used shared protected variables (send_blink_connection).
It fixes "show sends" of foldback busses (spilling the send
controls) and allows for showing showing other sends directly
without first disabling it.
This fixes some related issues with inheritance and
signal propagation.
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.
Remove unused code that was copy/pasted from mixer_strip.cc
which is not needed for foldback strips. Notably alternative
delivery display mode (aux-sends).
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).
* un-hardcode button numbers, use portable modifier API
* allow to toggle Send bypass with middle-click
* add support for delete-operator
* Only act on single-click press
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.
The mixer gain-entry selects all when the entry is focused
(see ArdourWidgets::FocusEntry). Due to the selection there is
no visible cursor, and it was not obvious that the entry
has focus. Also moving the mouse outside of the strip drops focus
without any indication.
This combines SessionEvent per playlist. Now per change
there are "only" two SessionEvent::Overwrite events
queued per playlist in the GUI thread for later processing
the Butler.
These are triggered by Playlist::ContentsChanged()
and Playlist::LayeringChanged(), both of which trigger
DiskIOProcessor::playlist_modified.
(Previously there used to be two per region)
"T: " prefix isn't very useful. in music-notation the note
symbol is established: ♩ = <bpm> or ♪ = <bpm>.
This fixes an issue on Windows, where those note symbols are
not available in the default unicode font. There "1/4" is used
which adds two extra monospace chars leading to cropped text.
The initial calls in `we_have_dependents()` was redundantly setting
all widows to "Hidden", before the actual state was known.
tabbable_state_change() is initially called for all Tabs:
ARDOUR_UI::setup_windows -> add_to_notebook() -> attach(),
or for detached windows Tabbable::set_state() -> hide_tab().
Step_up/down_through_tabs used window visibility to determine
candidates. This incorrectly considered detached visible tabs.
Detached windows cannot be cycled to.
This also addressed an issue where tab-buttons state was
incorrectly unset what unrelated tab state changed.
ImplicitActive of the currently active tab is now retained
when some other window is attached/detached.