0e17c5394c introduced a migration system
from migrating from the old shortcut format to the newer one (on
Windows) but it seems in this new function it was forgotten to check
whether support for GKey and/or XBox-Input was actually included or not.
This could lead to compile errors when e.g. using -Dgkey=OFF when
invoking cmake.
This commit fixes that by adding the mentioned include-guards.
Fixes#5322
Our global shortcut system currently doesn't work when using Wayland
(#5257). Therefore, this
commit makes sure that the global shortcut system is not even started
on such systems. Furthermore, it informs the user about the shortcuts
being disabled.
Currently, obtaining and validating the peer's certificate chain is a mess. While obtaining the chain (which is ordered, starting with the peer's immediate certificate and ending with the CA's certificate), the peers immediate certificate is added again, as last certificate. Then, while validating, the last certificate is checked. This approach works (since the validated certificate is the one that is expliticly added), but puts the whole concept of a ordered certificate chain to absurdity.
This commit fixes that. First, the chain it is returned unaltered in its original form (ordered and starting with the peer's immediate certificate and ending with the CA's certificate). Then, while validating, the first certificate in this chain is checked.
Currently, obtaining and validating the peer's certificate chain is a mess. While obtaining the chain (which is ordered, starting with the peer's immediate certificate and ending with the CA's certificate), the peers immediate certificate is added again, as last certificate. Then, while validating, the last certificate is checked. This approach works (since the validated certificate is the one that is expliticly added), but puts the whole concept of a ordered certificate chain to absurdity.
This commit fixes that. First, the chain it is returned unaltered in its original form (ordered and starting with the peer's immediate certificate and ending with the CA's certificate). Then, while validating, the first certificate in this chain is checked.
Fixes#3523 (partially)
This commit adds a new server-configuration that can be used in the
murmur.ini file. It can be used to forbid anyone on the server from
using Mumble's built-in recording functionality.
Any client trying to start a recording nonetheless, will be kicked from
the server.
From Mumble 1.5.0 clients will know about this configuration and will
disable the recording action in the UI, if recording is not allowed on
the server.
Additionally this PR also fixes/revamps two other small issues related
to the recording feature.
The recording button is now disabled by default. It gets enabled only
when connected to a server (that allows recording). This is done because
the recording feature can't be used without a server connection anyway
(doing so will result in an error popup). Thus this restriction is now
reflected in the UI as well.
This commit adds a new server-configuration that can be used in the
murmur.ini file. It can be used to forbid anyone on the server from
using Mumble's built-in recording functionality.
Any client trying to start a recording nonetheless, will be kicked from
the server.
From Mumble 1.5.0 clients will know about this configuration and will
disable the recording action in the UI, if recording is not allowed on
the server.
Our global shortcut system currently doesn't work when using Wayland
(https://github.com/mumble-voip/mumble/issues/5257). Therefore, this
commit makes sure that the global shortcut system is not even started
on such systems. Furthermore, it informs the user about the shortcuts
being disabled.
Fixes#5303
When excluding the manual plugin from the build (-Dmanual-plugin=OFF),
the compilation would fail due to the ManualPlugin.h header being
included in certain files nonetheless.
As it turns out the include was superfluous in the PluginConfig.cpp
file and in PluginManager.cpp the include is now shielded by a proper
ifdef-guard.
Fixes#5304
Due to this missing include, a build error would occur when compiling
without the manual plugin (which presumably caused the include to be
resolved indirectly).
If the used audio output system was bogus and therefore configured to
use a 0Hz sample rate, starting a recording would crash Mumble due to an
assertion in the VoiceRecorder class.
This commit adds a check for this situation and instead of crashing
Mumble, this will log a warning message to the console and close the
VoiceRecorderDialog instead.
Previously the maximum allowed value for the "silent user lifetime"
setting (affecting the TalkingUI) was 99 (apparently Qt's default for
spin boxes). However, this prevented users from keeping recent speakers
visible for a couple of minutes, which might be desirable (especially in
a situation in which Mumble is only running in the background while one
is doing other stuff).
In #4875 we changed the comparing between users to be locale-unaware.
During this change, the sorting was made case-sensitive, whereas before
it (potentially) was not.
However, intuitively a user will expect a case-insensitive ordering of
users in the UI. The only problem with that is that a case-insensitive
comparison will not yield a strong ordering between users that use
usernames that only differ in casing (e.g. "tom" and "Tom").
In order to avoid this problem, we now first perform a case-insensitive
comparison and fall back to a case-sensitive one, should the first
comparison yield "equal".
Fixes#5293
Previously, when switching input/output devices at the system level, Mumble would ignore the switch and continue to use the previous device. This patch adds support for proper device switching, allowing Mumble to correctly follow the system input/output device.
Fixes#1013
Currently translated at 100.0% (2078 of 2078 strings)
Co-authored-by: Eric <spice2wolf@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
Currently translated at 100.0% (2078 of 2078 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
This commits adds opus as an output format for voice recordings as requested in #5065. It uses an OGG container like the already implemented Vorbis codec but has much better compression. For clarity the .opus file extension is used.
Implements #5065
Co-authored-by: Robert Adam <dev@robert-adam.de>
Currently translated at 39.8% (828 of 2077 strings)
TRANSLATION: Update Esperanto translation
Currently translated at 39.6% (822 of 2075 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Tirifto <tirifto@posteo.cz>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/eo/
Translation: Mumble/Mumble Client
Currently translated at 100.0% (2077 of 2077 strings)
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2077 of 2077 strings)
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2077 of 2077 strings)
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2077 of 2077 strings)
Co-authored-by: Eric <spice2wolf@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
Currently translated at 97.2% (2019 of 2077 strings)
TRANSLATION: Update Swedish translation
Currently translated at 95.6% (1987 of 2077 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/sv/
Translation: Mumble/Mumble Client
Currently translated at 100.0% (2077 of 2077 strings)
TRANSLATION: Update German translation
Currently translated at 100.0% (2077 of 2077 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Co-authored-by: Vri 🌈 <weblate@vrifox.cc>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
Upon switching to CMake, we kept using our own fork for the repository because a few fixes for the build were needed.
Now that the upstream repository works correctly as submodule, we can fetch from it directly.
Please note that tests provided in the Opus repository are not built anymore.
Fixes#5223.
The check for configured network interfaces at startup has a problem
that if IPv4 is not configured for some reason, Mumble will bind to
IPv6-only socket, and will not be available over IPv4 until manually
restarted.
There's no harm binding to the "any" IPv6 address with IPV6_V6ONLY set
to 0 even if there're no assigned addresses of either address family.
The bind will succeed either way, and will accept connections on any
new address configured in the system regardless of the address family.
QHostAddress::Any tries to setup an AF_INET6 socket with IPV6_V6ONLY
set to 0, and falls back to AF_INET in case it's unavailable.
However, it will only happen if IPv6 is completely disabled on the
system, which is a rare configuration, but nevertheless it will fall
back gracefully.
Fixes#5208
After 3dc7b00d09, shortcuts saved in the old format would just show up as "Unknown" and not work.
This commit implements a proper migration mechanism, making the shortcuts work without any manual steps.
Mice, keyboards, Xbox (XInput) controllers and Logitech G-keys devices are supported.
Unfortunately shortcuts will have to be registered again for DirectInput devices such as controllers.
The migration is performed silently, unless not 100% successful.
In that case a message box appears informing the user about how many shortcuts could not be migrated.
Please note that running a version of Mumble that uses the old format after the migration results in corruption.
As a result, shortcuts would have to be registered again.
Fixes#5025.