Add option to mute Remote Access when not controlling the remote computer (#18630)
Closes #18104
Summary of the issue:
It is often disruptive to hear what is happening on the remote computer
when controling the local computer. As such, users want the ability to
automatically mute output from the remote computer when controling the
local computer.
Description of user facing changes:
Added an option to mute the remote computer when controlling the local
computer. If enabled:
* Mutes the remote computer when first connecting as leader;
* Automatically mutes the remote computer when switching from remote to
local control.
This option is disabled by default.
Description of developer facing changes:
None
Description of development approach:
* Refactored `_remoteClient.client.RemoteClient.toggleMute` to rely on
an internal use only method that only toggles the mute state, without
performing error checks or producing user output.
* When connecting as leader, toggle to muted using the internal method
if we should mute when controling the local machine.
* Use the public method to toggle mute when switching from remote to
local control (done so there is clear output, just as is done when
switching the other way).
* Added a config item to the config spec that mediates this behaviour..
Also added to the Remote Access settings panel.
Testing strategy:
Connected and disconnected as leader with this setting enabled and
disabled and ensured it behaved as expected.
Known issues with pull request:
None