Commit Graph

8284 Commits

Author SHA1 Message Date
Robert Adam
706e2edd04 FEAT(client): Indicate talking users when locally muted
Before this commit it is impossible to tell whether a client is talking
or not once that client is locally muted.

This commit changes this by introducing a new talking state
"MutedTalking" for these special cases. In order for this talking state
to come in existence, the audio code was altered so that audio packets
are no longer dropped if the associated user is locally muted. Instead
the audio frame will pass the normal processing chain until it comes to
actually decoding it.

For Opus packets only the sample count is read out without actually
doing the work of decoding. For all other codecs the packet is decoded
as usual. In a final step the sample buffer is filled/overwritten with
zeros in order to mute the stream.

With this commit in place, the UI will indicate a user that is talking
but is muted with a special icon. Note that this is only the case in the
modern themes (Light and Dark) but not for the Classic theme as I wasn't
able to alter the talking icon accordingly. There is an altered version
of the icon added with this commit but that one doesn't render properly
within Qt (it does render everywhere else though). Making this feature
work for the classic theme is a simple matter of getting the icon to
work and then editing ClassicTheme.qrc which currently points to the
same icon as for passive users for the MutedTalking state.
2020-07-02 17:29:05 +02:00
Robert Adam
4afab7c67d
Merge pull request #4336: REFAC(various): replace NULL with nullptr
This changes all remaining occurances of NULL in the source code to nullptr.

fixes #3763
2020-07-02 14:33:38 +02:00
Popkornium18
567f24aca5 REFAC(g15helper): replace NULL with nullptr
This changes all occurances of NULL in g15helper_emu.cpp
to nullptr.
2020-07-02 12:19:22 +02:00
Popkornium18
c6bf7bbfd2 REFAC(client): replace NULL with nullptr
This changes all occurances of NULL in mumble_exe.cpp
to nullptr.
2020-07-02 12:19:22 +02:00
Popkornium18
f966b3ef37 REFAC(shared): replace NULL with nullptr
This changes all occurances of NULL in the src source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-07-02 12:19:16 +02:00
Popkornium18
fd02c573b1 REFAC(crypto): replace NULL with nullptr
This changes all occurances of NULL in CryptographicHash.cpp
to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-07-02 00:55:41 +02:00
Popkornium18
e098a038b6 REFAC(tests): replace NULL with nullptr
This changes all occurances of NULL in the tests source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-07-02 00:55:41 +02:00
Popkornium18
410837526c REFAC(server): replace NULL with nullptr
This changes all occurances of NULL in the murmur source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-07-02 00:55:36 +02:00
Robert Adam
e62d5abb31
Merge pull request #4333: FIX(talking-ui): Make TalkingUI float with tiling WMs
With tiling window managers (e.g. i3) the TalkingUI was seen as any
other regular window and thus it was assigned its own screen space.
This is however unfitting for the TalkingUI as it is meant to take the
least amount of possible screen space.

The solution is thus to mark the TalkingUI as floatable in order to
bypass the WM's tiling logic. In order to do so, the TalkingUI is now
marked as a dialog. Dialogs however also show the "?" button in the
title bar by default, which had to explicitly be disabled as it is
absolutely useless for the TalkingUI anyways.

Fixes #4324
2020-07-01 18:26:57 +02:00
Robert Adam
70a11733c4 FIX(talking-ui): Make TalkingUI float with tiling WMs
With tiling window managers (e.g. i3) the TalkingUI was seen as any
other regular window and thus it was assigned its own screen space.
This is however unfitting for the TalkingUI as it is meant to take the
least amount of possible screen space.

The solution is thus to mark the TalkingUI as floatable in order to
bypass the WM's tiling logic. In order to do so, the TalkingUI is now
marked as a dialog. Dialogs however also show the "?" button in the
title bar by default, which had to explicitly be disabled as it is
absolutely useless for the TalkingUI anyways.

Fixes #4324
2020-07-01 16:13:46 +02:00
Robert Adam
078f59b61e
Merge pull request #4331: Transifex translation update 2020-07-01 09:09:23 +02:00
MumbleTransifexBot
1c46b363ce Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 45 languages
2020-07-01 01:27:27 +00:00
Robert Adam
3eaee7c670
Merge pull request #4330: FIX(typo): Fixed missing slash in closing <p>-tag 2020-06-30 17:48:31 +02:00
Robert Adam
88f7154348 Translation update
Updating 'mumble_en.ts'...
    Found 1882 source text(s) (1 new and 1881 already existing)
    Removed 1 obsolete entries
2020-06-30 15:30:52 +02:00
Robert Adam
085f3e02d7 FIX(typo): Fixed missing slash in closing <p>-tag 2020-06-30 15:30:00 +02:00
Robert Adam
2c57727445
Merge pull request #4321: REFAC(overlay,plugins): replace NULL with nullptr
This changes all occurances of NULL in the plugins and overlay source dir to nullptr. Additionally explicit comparisons with NULL were removed.

Implements #3763 (partly)
2020-06-30 07:26:34 +02:00
Robert Adam
f076e570dc
Merge pull request #4327: Fix typos in Mumble.proto 2020-06-29 18:01:53 +02:00
Arkadiusz Ryś
42271b1118
DOCS: Fix typos in Mumble.proto 2020-06-29 17:13:59 +02:00
Robert Adam
5b14e1aec6
Merge pull request #4326: FIX(talking-ui): Fix local user added multiple times
In #4306 a glitch in the TalkingUI was fixed that was associated with
session reuse by the server. As an additional fail-safe the respective
commit (bbfe736) also implemented a
quick check for whether the name of the user with a given ID is still
the same as the stored one for that user.

In #4325 however it was pointed out that this leads to the local user
being added to the TalkingUI every time it starts speaking. This is due
to the local user's name being written in bold meaning that it contains
HTML tag in the TalkingUI which are obviously not part of the actual
user name.

This commit fixes this issue by first stripping out any HTML tags from
the stored name before comparing it to the actual username.

Fixes #4325
2020-06-29 10:43:36 +02:00
Robert Adam
6f0516b61b FIX(talking-ui): Fix local user added multiple times
In #4306 a glitch in the TalkingUI was fixed that was associated with
session reuse by the server. As an additional fail-safe the respective
commit (bbfe736b13) also implemented a
quick check for whether the name of the user with a given ID is still
the same as the stored one for that user.

In #4325 however it was pointed out that this leads to the local user
being added to the TalkingUI every time it starts speaking. This is due
to the local user's name being written in bold meaning that it contains
HTML tag in the TalkingUI which are obviously not part of the actual
user name.

This commit fixes this issue by first stripping out any HTML tags from
the stored name before comparing it to the actual username.

Fixes #4325
2020-06-29 09:48:45 +02:00
Popkornium18
691c38736a REFAC(plugins): replace NULL with nullptr
This changes all occurances of NULL in the plugins source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-06-28 19:04:27 +02:00
Popkornium18
fd8386a206 REFAC(overlay): replace NULL with nullptr
This changes all occurances of NULL in the overlay source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-06-28 19:04:21 +02:00
Robert Adam
22efc90a9f
Merge pull request #4318: Transifex translation update 2020-06-28 14:16:24 +02:00
MumbleTransifexBot
f0489d6ba1 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 45 languages
2020-06-28 11:20:55 +02:00
Robert Adam
2caae7960e
Merge pull request #4317: REFAC(client): replace NULL and Q_NULLPTR with nullptr
This changes all occurances of NULL and Q_NULLPTR in the mumble source dir to nullptr. Additionally comparisons with NULL were changed to if(pointer) if it would not be confusing. (e.g. booleans as parameters setEnabled(pointer != nullptr)).

I plan to do the rest of the code, however it is probably best not to do everything at once.

Obviously I couldn't check everything for regressions. It compiles and I did not experience any problems though.

Implements #3763 (partly)
2020-06-27 17:12:52 +02:00
Popkornium18
01db6e219d REFAC(client): replace NULL and Q_NULLPTR with nullptr
This changes all occurances of NULL and Q_NULLPTR in the mumble source
dir to nullptr. Additionally comparisons with NULL were changed to `if
(pointer)` if it would not be confusing. (e.g. booleans as parameters `
setEnabled(pointer != nullptr)`)
2020-06-27 13:38:37 +02:00
Robert Adam
b1e8910c60
Merge pull request #4291: Revamp ServerBrowser UI
This PR revamps the ServerBrowserUI to facilitate its usage. Additionally it also adds a search-functionality to it.

Fixes #3532
2020-06-26 09:00:01 +02:00
Robert Adam
e17ebbbc7f
Merge pull request #4306: FIX(talking-ui): Fix glitch on session reuse
Until now the TalkingUI assumed that session IDs of users are unique
throughout the server's lifetime. This turned out to be wrong as the
server reuses session IDs of disconnected users.

This could lead to a new user being shown with the name of an old user
in the TalkingUI as that new user was reusing the old's session ID.

With this commit a user gets deleted from the TalkingUI if it
disconnects from the server.
2020-06-26 08:22:41 +02:00
Robert Adam
79bbc1bf8b
Merge pull request #4312: FIX(tts): OmitScope/OmitAuthor no longer reads HTML-formatted message
The new features "Omit Message Scope" and "Omit Message Author" were
somewhat broken.
The problems are adressed by transforming the message from HTML to
plaintext and creating a new TTS string that either contains no prefix
or just the scope or the author.

Fixes #4309
2020-06-26 07:29:15 +02:00
Popkornium18
9c5857a9fb Translation update
Updating 'mumble_en.ts'...
    Found 1881 source text(s) (5 new and 1876 already existing)
    Removed 4 obsolete entries
2020-06-25 21:09:36 +02:00
Popkornium18
a517f10835 FIX(tts): OmitScope/OmitAuthor no longer reads HTML-formatted message
The new features "Omit Message Scope" and "Omit Message Author" where
somewhat broken.
The problems are adressed by transforming the message from HTML to
plaintext and creating a new TTS string that either contains no prefix
or just the scope or the author.

Fixes #4309
2020-06-25 21:09:17 +02:00
Popkornium18
5cc56e83f8 Translation update
Updating 'mumble_en.ts'...
    Found 1881 source text(s) (15 new and 1866 already existing)
    Removed 14 obsolete entries
2020-06-22 19:57:59 +02:00
Popkornium18
0ba080f638 FEAT(serverbrowser): Update serverbrowser UI
The location subtree for the public servers is now gone.
All public servers are now child elements of "Public Internet" regardless
of location. A flag Icon has been added to each public server to
indicate its location.

A search bar for the public servers is added.  It is only visible when the
public servers are expanded.  Searching for a server name and filtering
by location is possible. The "server status filters"
(Show Reachable etc...) have been moved from the context menu of the
server browser to the search dialog.

This also adds a window that is shown once the user expands the public
server list for the first time. The user is asked for consent to
transmit the IP address to each of the public servers.
If the user does not consent, the public server list is disabled.

Implements #3532
2020-06-22 19:57:18 +02:00
Robert Adam
a20d16777e
Merge pull request #4301: FEAT(client): Log a message if some change could not be saved due to missing certificate
Log a message if a change like local muting of a user could not be saved because this user does not have a certificate.
2020-06-20 14:26:37 +02:00
Robert Adam
94ed179e99
Merge pull request #4307: FIX(text-chat): Fix crash on TextMessage from server
1a4d134 (part of #4287) introduced the ability to
disable TTS for specific users. The change however didn't account for
messages that are sent from the server. In these cases pSrc is nullptr
but that commit introduced code that access it without checking for
null. This lead to a SegFault as soon as a text message from the server
is received.

This commit fixes this by simply adding a null-check before accessing
the variable.
2020-06-20 13:09:46 +02:00
Popkornium18
fd7befc54d Translation update
Updating 'mumble_en.ts'...
    Found 1880 source text(s) (5 new and 1875 already existing)
2020-06-20 12:44:14 +02:00
Popkornium18
4febe405e3 FEAT(client): Show info if some change could not be saved
Log a message if a change like local muting of a user
could not be saved because this user does not have a certificate.
2020-06-20 12:43:52 +02:00
Robert Adam
3583235542 FIX(text-chat): Fix crash on TextMessage from server
1a4d134a35 introduced the ability to
disable TTS for specific users. The change however didn't account for
messages that are sent from the server. In these cases pSrc is nullptr
but that commit introduced code that access it without checking for
null. This lead to a SegFault as soon as a text message from the server
is received.

This commit fixes this by simply adding a null-check before accessing
the variable.
2020-06-20 11:39:29 +02:00
Robert Adam
bbfe736b13 FIX(talking-ui): Fix glitch on session reuse
Until now the TalkingUI assumed that session IDs of users are unique
throughout the server's lifetime. This turned out to be wrong as the
server reuses session IDs of disconnected users.

This could lead to a new user being shown with the name of an old user
in the TalkingUI as that new user was reusing the old's session ID.

With this commit a user gets deleted from the TalkingUI if it
disconnects from the server.
2020-06-19 20:34:37 +02:00
Robert Adam
2a41d5af07
Merge pull request #4244: UserLocalVolumeDialog: "Inherit" AlwaysOnTop behavior
Before this PR, if the MainWindow was set to be always on top of
other windows, it could happen that the UserLocalVolumeDialog got hidden
behind the MainWindow (it wanted to open on top of it but since the
MainWindow is set to be on top of all other windows, it couldn't). This
could be especially annoying on Windows where you can't move the
MainWindow away as long as the UserLocalVolumeDialog is open (luckily
you can close it via Esc though).

In order to avoid this kind of situation, this commit make the
UserLocalVolumeDialog "inherit" the AlwaysOnTop flag from the
MainWindow. This way it can open on top of it again and won't be hidden.
2020-06-19 20:21:17 +02:00
Robert Adam
cd60ea5023
Merge pull request #4287: Allow disabling of TTS for specific users
These changes make it possible to disable Text-To-Speech for specific
users while still receiving the messages as normal text.

A use case for this would be muting text to speech for a music bot.
2020-06-17 19:45:33 +02:00
Popkornium18
06e558a870 Translation update
Updating 'mumble_en.ts'...
    Found 1873 source text(s) (4 new and 1869 already existing)
2020-06-17 18:41:02 +02:00
Popkornium18
1a4d134a35 FEAT(tts): Allow disabling Text-To-Speech per user
These changes make it possible to turn of TTS for a specific user while
still receiving their messages.

This setting can be managed from the context menu of a user that is
connected to the server and is only visible when TTS is enabled
globally.

A new DB table called 'ignored_tts' had to be created to persist this
setting.
2020-06-17 18:41:02 +02:00
Robert Adam
73c535b25d
Merge pull request #4275: MAINT: Create commit guidelines 2020-06-16 10:00:46 +02:00
Robert Adam
8834fbcfd0 MAINT: Create commit guidelines 2020-06-15 08:11:35 +02:00
Robert Adam
9f5aab48f8
Merge pull request #4293: FIX(certificate): Properly process signed certificates
This fixes a regression introduced in
b691108. In there it was thought that
there is no need to explicitly add the system CaCertificates to the SSL
configuration. This turned out to be wrong.

It was brought up that by removing this line, properly signed
certificates would also be shown as self-signed.

Fixes #4289
2020-06-14 15:01:44 +02:00
Robert Adam
6da56c774e
Merge pull request #4285: REFAC(lgtm): Removed subsequently overwritten key
Dictionary key 'key_exchange' is subsequently overwritten.
2020-06-14 09:34:38 +02:00
Robert Adam
ba9ae91614 FIX(certificate): Properly process signed certificates
This fixes a regression introduced in
b691108d38. In there it was thought that
there is no need to explicitly add the system CaCertificates to the SSL
configuration. This turned out to be wrong.

It was brought up that by removing this line, properly signed
certificates would also be shown as self-signed.

Fixes #4289
2020-06-14 09:14:50 +02:00
Robert Adam
e011cac4f2
Merge pull request #4265: Send image pasted into the chat bar
Implements functionality to send an image by copy and paste into the chat bar of mumble.
This is a commonly expected behavior of any chat app. Can't see why mumble should not have one.
Furthermore it also implements Drag&Drop for images to the chatbar.
2020-06-14 08:43:45 +02:00
Terry Geng
8e316b37dd
Translation update
Info: creating stash file /Users/terrygeng/Desktop/mumble-voip/mumble/src/mumble/.qmake.stash
Updating 'mumble_en.ts'...
    Found 1871 source text(s) (2 new and 1869 already existing)
2020-06-13 09:13:37 +08:00