PortGroupList::gather() first adds UserBundle ports to
`system->add_bundle (*i, allow_dups);`
That can include ports that are already associated with the
current bundle. The port in this case has the Bundle's name.
Those ports are later removed in BundleEditorMatrix::setup_ports
`_ports[OTHER].remove_bundle (_bundle);`
However we do need to show physical ports by their name, even
if they're identical to the already associated bundle to allow
disassociating them.
Clean up internal API confusion
- can_add_channels_proxy () -- checks presence of io
- can_add_channel_proxy () -- checks io->can_add_port()
UserBundle don't have a PortGroup::_bundle reference
that can be used to lookup the IO via io_from_bundle().
While BundleEditorMatrix::can_add_channels_proxy() was overriden
to allow adding I/Os, can_add_channel_proxy() later prevented that.
This further prevents removing the last port, preventing empty bundles.
This fixes an issue with the connection button still showing
the name of a Bundle even after deleting it, or displaying an
old name after renaming a bundle.
With bundles `ports_are_inputs()` indicates inputs that Ardour
can write to (data sinks, for playback).
BundleEditor::input_or_output_changed () set this correctly.
The rec-arm circle diameter is given by 0.5 * min (width, height).
For mono tracks the diameter is limited with the height of the
track. When more channel meters are visible the height increases and
the rec-arm circle grows.
The solution here is to constrain the rec-arm button width to its
minimum and not grow to have the same width as other buttons.
This also changes the default meter-height so mono and stereo tracks
have the same height (with default scaling).
The calculation to round the distance to seconds has to be performed
using floating point maths, not just the result being cast to double.
The time-granularity must not be zero.
* Shorten long labels
Those increase the x-offset for the data table column on the right.
* Shorten some long ComboBox texts
* Reduce min. slider controller width
* Tag some long labels and dropdowns that are currently the bottleneck
* Split "Signal Flow" pages to reduce height requirement
-> Signal Flow & -> Solo/Monitoring
The latter is just control logic, no signal flow changes.
* Group CPU/FPU performance Options
* Move Region-Analysis to Metering (it is not performance related)
* moved some wrongly-parented items into a more sensible location
(import & export options for example)
* broke some busy pages into separate sub-tabs: Size+Scale,
MIDI Port configuration, Timecode Generators
* added "Performance" tab to consolidate some of the tweakier prefs
* moved the order of tabs around so the "indented" ones were not
so intermixed with the non-indented ones