Commit Graph

5455 Commits

Author SHA1 Message Date
Robert Adam
18534cf011
Merge pull request #4546: FEAT(client, ui): Add button to reset all settings
Previously the user only had the choice of setting the settings on the
current settings page to their default value. Therefore, if you wanted
to reset all settings, you had to visit every page and reset it
individually.

With this commit, there is now a reset-all button that can be used
instead.
2020-10-26 11:48:57 +01:00
Robert
0ed420fa2e TRANSLATION: Update translation files
Scanning directory './src'...
Scanning directory './src/mumble'...
Updating 'src/mumble/mumble_en.ts'...
    Found 1909 source text(s) (5 new and 1904 already existing)
    Removed 1 obsolete entries
2020-10-26 10:50:33 +01:00
Robert Adam
a8a9fa0600 FEAT(client, ui): Add button to reset all settings
Previously the user only had the choice of setting the settings on the
current settings page to their default value. Therefore, if you wanted
to reset all settings, you had to visit every page and reset it
individually.

With this commit, there is now a reset-all button that can be used
instead.

Co-authored-by: Davide Beatrici <github@davidebeatrici.dev>
2020-10-26 10:50:16 +01:00
Robert Adam
bf9550a68e
Merge pull request #4503: BUILD(cmake): Revamp install paths
Installation paths can now be fine-tuned by setting the respective
MUMBLE_INSTALLATION_* variables when invoking cmake.

Additionally some components that only had install rules for a certain
OS are now installed on all OSes as these components should be needed
there as well.
2020-10-24 17:38:56 +02:00
Robert Adam
ceb4f1afe2
Merge pull request #4509: BUILD(cmake): Fix gRPC not being found
We are using a custom FindGRPC.cmake script in order to locate the gRPC
targets as not all distribution variants of gRPC include the respective
cmake support. Those that do however will use "gRPC" (note the lowercase
"g") as the target's name and therefore our current way of searching for
it via find_pkg won't find them.

The solution is to first look for "gRPC" and only if that fails, check
for "GRPC". This way the official target "gRPC" should be found and
preferred if present.

Fixes #4508
2020-10-24 16:01:56 +02:00
Robert
b9b41621c5 BUILD(cmake): Revamp install paths
Installation paths can now be fine-tuned by setting the respective
MUMBLE_INSTALLATION_* variables when invoking cmake.

Additionally some components that only had install rules for a certain
OS are now installed on all OSes as these components should be needed
there as well.
2020-10-24 15:57:01 +02:00
Robert Adam
3f92412553
Merge pull request #4402: TRANSLATION: Transifex translation update 2020-10-24 15:21:39 +02:00
Robert
767b29d69c BUILD(cmake): Fix gRPC not being found
We are using a custom FindGRPC.cmake script in order to locate the gRPC
targets as not all distribution variants of gRPC include the respective
cmake support. Those that do however will use "gRPC" (note the lowercase
"g") as the target's name and therefore our current way of searching for
it via find_pkg won't find them.

The solution is to first look for "gRPC" and only if that fails, check
for "GRPC". This way the official target "gRPC" should be found and
preferred if present.

Fixes #4508

Co-Authored-By: Thomas Lange <thomas-lange2@gmx.de>
2020-10-24 14:47:06 +02:00
MumbleTransifexBot
80415791f5 TRANSLATION: Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 45 languages
2020-10-24 14:37:34 +02:00
Robert Adam
0163836c4c
Merge pull request #4427: Use new AppImage bundle tool
The new tool provided at https://github.com/probonopd/go-appimage/blob/master/src/appimagetool doesn't have the restriction of having to be run on the latest still supported Ubuntu version. Thus this allows us to upgrade our Linux CI on Azure to Bionic.

Note however that the AppImage produced this way doesn't seem to be working.
2020-10-24 14:01:35 +02:00
Davide Beatrici
11bb07e6da
Merge PR #4542: FIX(client): don't print Zeroconf warning if the operation was cancelled 2020-10-23 22:31:03 +02:00
Robert Adam
94d25d8296 CI(azure): Use new Go AppImage tool
The old AppImage tool required to be run on the oldest still supported
Ubuntu LTS. On anything else it would quit with an error.

There is a new tool from the same author though that does not have this
limitation due to bundling more of its dependencies into the AppImage.
The tool is taken from https://github.com/probonopd/go-appimage.
2020-10-23 19:40:52 +02:00
Jannis Achstetter
e493c8e6e1 FORMAT(server): Add braces around foreach-loops and if-bodies 2020-10-23 15:16:09 +02:00
Jannis Achstetter
578b9a55b3 FEAT(server): Send text messages also to users only listening to channels
The "Channel Listeners" (#4011) feature allows users to hear the audio
from a channel without joining it. This commit also delivers text
messages to all users who are just "listening to" a channel this way.

Implements #4539
2020-10-23 15:15:55 +02:00
Davide Beatrici
618ab567f0 FIX(client): don't print Zeroconf warning if the operation was cancelled
Closing ConnectDialog causes the ZeroConf object to be destroyed. The destructor cancels any running operations, as expected.

However, a warning is printed in Zeroconf::callbackBrowseComplete() because ERROR_CANCELLED is not handled:

"Zeroconf: DnsServiceBrowse() reports status code 1223, ignoring results"

This commit fixes the issue.

419b06065f applied the exact same change to callbackResolveComplete().

The error message in that commit's description is wrong, but everything else is correct.
2020-10-23 04:34:55 +02:00
Jannis Achstetter
d1b99c8f6e DOCS(server): Add comments to Server::msgTextMessage 2020-10-22 22:59:55 +02:00
Robert Adam
cbf9abd654 MAINT: Update desktop and appdata files
Updated the mumble.desktop and mumble.appdata.xml files to meet the most
recent information and also meet the more modern standards that have
been established.

They now pass validation by appstreamcli.
2020-10-18 09:15:58 +02:00
Moritz Kempe
6fd35b5dee FEAT(ui): Add ability to paste and send messages using a keyboard shortcut
As requested in Issue #4257 this commit implements the ability to paste and send messages whit a single keyboard shortcut.
The keyboard shortcut is Ctrl + Shift + V, as requested.
I tried to add the shortcut into the "paste and send" drop down menu item but the shortcut is not visible to me, maybe it's because my screen resolution.

Implements #4257
2020-10-11 20:34:41 +02:00
Davide Beatrici
419b06065f FIX(client): don't print Zeroconf warning if the operation was cancelled
Closing ConnectDialog causes the ZeroConf object to be destroyed. The destructor cancels any running operations, as expected.

However, a warning is printed in Zeroconf::callbackResolveComplete() because ERROR_CANCELLED is not handled:

"Zeroconf: DnsServiceBrowse() reports status code 1223, ignoring results"

This commit fixes the issue.
2020-10-09 05:26:24 +02:00
Robert
c0bd48d1cd FIX: Wrong format type
The format String was created for an unsigned int but was fed with a
long unsigned int (aka DWORD).
This would cause a compiler warning and could have theoretically caused
loss of information/data.
2020-09-28 11:33:55 +02:00
Robert
7bc901b0e4 REFAC: Don't use deprecated QSysInfo::WinVersion
It has been deprecated in Qt 5.15 and its replacement is already
available since Qt 5.9
2020-09-28 11:33:55 +02:00
Robert
c7318091d7 FIX(client): Warning about implicit conversion
The implicit conversions from size_t to int were warned about using
MSVC. Therefore all conversions are now explicit.
2020-09-28 11:33:55 +02:00
Robert
e1b019de23 FIX(client): Warning about unused parameter
This parameter is unused if TTS is disabled. In that case it should be
marked as unused in order to suppress the warning about it being unused.
2020-09-28 11:33:55 +02:00
Robert
b4c3782058 FIX(server): Warning about redefinition of WIN32_LEAN_AND_MEAN 2020-09-28 11:33:55 +02:00
Robert
c52b229023 BUILD(cmake): Disable warnings for generated proto-sources
The source files that the protobuf compiler generates can produce (a lot
of) warnings (typically about unused variables). As this would prevent
the use of the warnings-as-errors option, this commit suppresses all
warnings for those generated files.
2020-09-28 11:33:55 +02:00
Robert
e0fe7dca1d BUILD(cmake): Fix referenced target
The target was set to speex while it should have been rnnoise.
2020-09-23 11:52:25 +02:00
Davide Beatrici
69dfdd2135
Merge PR #4494: FEAT(client, server): use native mDNS/DNS-SD API on Windows, if available 2020-09-23 01:04:07 +02:00
Robert Adam
66c4838860
Merge pull request #4502: FIX(client, ui): Make setting take effect immediately
The setting for keeping the local user always visible in the TalkingUI
was not put into effect immediately if the local user didn't happen to
be displayed in the TalkingUI at the time of applying the settings.
Instead the effect was only visible after a re-connect or after having
changed the local user's TalkingState so that it was added to the UI via
that route.

The fix was simply to add the user if it is currently not present but is
asked to be shown permanently.
2020-09-22 19:40:27 +02:00
Robert Adam
e0ed9b792e
Merge pull request #4501: FIX(client, ui): Container prio never sinks in TalkingUI
The way TalkingUIContainer::updatePriority() worked prevented a
container's priority to decrease (even thought the entry because of which
the priority initially increased is no longer contained).

To fix this, the referenced function will now simply reset the cached
priority to the lowest possible value before performing the actual
checking.
2020-09-22 19:01:32 +02:00
Robert
eafc643103 FIX(client, ui): Make setting take effect immediately
The setting for keeping the local user always visible in the TalkingUI
was not put into effect immediately if the local user didn't happen to
be displayed in the TalkingUI at the time of applying the settings.
Instead the effect was only visible after a re-connect or after having
changed the local user's TalkingState so that it was added to the UI via
that route.

The fix was simply to add the user if it is currently not present but is
asked to be shown permanently.
2020-09-22 16:52:39 +02:00
Robert
dee567fb24 FIX(client, ui): Don't move TalkingUI off-screen
On Linux (KDE Plasma) Qt (or rather the window manager) won't move a
widget off-screen so there was no need to check whether the position
saved for the TalkingUI was actually on-screen or not.
The situation seems to be a different one on Windows though. There it
can happen that the UI is moved off-screen. Once that happens the user
is more or less incapable of bringing it back again (as the saved
position won't get cleared).

In order to mitigate this issue, it is now (thoroughly) checked whether
or not the TalkingUI will end up on-screen or not.
2020-09-22 16:43:23 +02:00
Robert
63104a3aa2 FIX(client, ui): Container prio never sinks in TalkingUI
The way TalkingUIContainer::updatePriority() worked prevented a
container's priority to decrease (even thought the entry because of which
the priority initially increased is no longer contained).

To fix this, the referenced function will now simply reset the cached
priority to the lowest possible value before performing the actual
checking.
2020-09-22 16:38:12 +02:00
Robert
41c1af4c08 FIX(client): Setting not saved
The showVolumeAdjustment setting was saved twice but wasn't loaded
anywhere.
2020-09-22 08:53:26 +02:00
Davide Beatrici
ee731f8405 FEAT(client, server): use native mDNS/DNS-SD API on Windows, if available
This allows:

- The client to find servers advertized via zeroconf without the need for Bonjour to be installed.
- The server to advertize itself via zeroconf without the need for Bonjour to be installed.

The Win32 API was introduced in the version 10.0.18362.0 (1903/19H1) of Windows SDK. Before that, only the UWP interface was available (introduced in Windows 10 1507).

This commit was successfully tested on Windows 10 1809, which probably means that the API can be used on previous versions as well.

Even if that isn't the case, it's not a problem: if the code fails to load the required symbols, it falls back to Bonjour.

"Q_OS_WIN64" is used instead of "Q_OS_WIN" because of an issue that appears when certain DNS functions are used in an x86 (32 bit) build: https://developercommunity.visualstudio.com/content/problem/1191345/some-dns-api-functions-cause-lnk2019-errors-in-32.html

This means that until the issue is fixed we can safely use the native mDNS-DNS-SD API only on x86_64 (64 bit).
2020-09-22 07:36:43 +02:00
Davide Beatrici
6a59ae2443 REFAC(client, server): replace "Bonjour" with "Zeroconf", except for 3rdparty
This should make it more clear that we don't include Bonjour-related stuff in our project. We use external libraries depending on the OS.

For compatibility, the server option is still called "bonjour". We should probably add a new option called "zeroconf" and then handle the old one if present in the configuration file.
2020-09-22 07:35:52 +02:00
Robert
82925aab17 FIX(client, audio): Loading sample fails silently
If a sound-file failed to load, there is no hint about this in the logs
or anywhere else as it never actually gets ensured that the loading was
successful.

Now and explicit check is performed and if the loading failed, a warning
is printed to the console.

Closes #4492
2020-09-21 08:38:25 +02:00
Robert Adam
dccc7c9d14
Merge pull request #4489: FIX(client): Assertion-error for ChannelListeners
PR #4487 introduced a regression in form of a failing assertion in case
a user has stored volume adjustments for a ChannelListener in its DB. In
that case the client would crash as soon as the server-connection has
synchronized.

The issue was caused by a change-event being emitted before the
ChannelListener officially existed. The fix is to simply not send these
events in the first place.
2020-09-19 18:29:12 +02:00
Davide Beatrici
49b2d8509e
Merge PR #4478: Load PulseAudio at runtime 2020-09-17 22:48:44 +02:00
Robert
ae7de7fcc5 FIX(client): Assertion-error for ChannelListeners
PR #4487 introduced a regression in form of a failing assertion in case
a user has stored volume adjustments for a ChannelListener in its DB. In
that case the client would crash as soon as the server-connection has
synchronized.

The issue was caused by a change-event being emitted before the
ChannelListener officially existed. The fix is to simply not send these
events in the first place.
2020-09-17 14:48:24 +02:00
Robert
7c0f319529 FIX(client,ui): MainWindow not updating on vol. adj.
If the local volume adjustment of a client or a ChannelListener was
changed, the MainWindow would not reflect this change until some event
triggered it to refresh (e.g. MouseOver).

With this fix, the MainWindow gets updated immediately when the volume
adjustment is changed (of a client or a ChannelListener).
2020-09-15 17:23:29 +02:00
Robert
c9f686267d FIX(client,ui): ChannelListener vol.-adj. display
The local volume adjustment a user has set for their own
ChannelListeners would be displayed for all listeners in that channel
(even for the listeners of other clients).
This has been fixed by making sure these adjustments are only displayed
for local listeners.
2020-09-15 16:50:29 +02:00
Davide Beatrici
b014d7f33e FEAT(client): load PulseAudio at runtime
This effectively removes it as dependency.
2020-09-13 20:12:54 +02:00
Davide Beatrici
c21f59ace7 FIX(client): typo in gswForward() causing "WM_" messages not to be injected
This could also cause a crash, in case gswForward() was called before GlobalShortcutsWin's initialization.

For reference, the bug was introduced in 01db6e219d.
2020-09-12 22:17:32 +02:00
Robert
b42100e129 REFAC: Fix warning about boost bind
Compiling with Boost a somewhat recent version of Boost would produce
warnings about deprecated usage of boost::bind.
These have been fixed now.

The warning was
The practice of declaring the Bind placeholders (_1, _2, ...) in the
global namespace is deprecated. Please use
<boost/bind/bind.hpp> + using namespace boost::placeholders, or
define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.

Fixes #4295
2020-09-12 13:46:55 +02:00
Robert Adam
0a53864d20
Merge pull request #4480: BUILD(cmake): Don't re-use BUILD_TESTING
We used the BUILD_TESTING variable in order to indicate whether or not
tests shall be built. However this variable is used by e.g. CTest
already and there it had a different default value. Therefore we now
deprecate BUILD_TESTING and use the tests option instead.
2020-09-12 09:00:37 +02:00
Davide Beatrici
557bf8d3f0
Merge PR #4481: BUILD(cmake): Fix plugins install directory 2020-09-11 20:09:27 +02:00
Robert
af7dac72f4 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Robert Adam
7f98e68159 FIX(code): Windows errors in propvar.h 2020-09-11 18:28:38 +02:00
Robert Adam
c51dca8ab9 FIX(code): MacOS error with celt 2020-09-11 18:28:38 +02:00
Robert Adam
09d4b41d81 FIX(code): Missing includes for PacketDataStream 2020-09-11 18:28:38 +02:00