Commit Graph

8316 Commits

Author SHA1 Message Date
Davide Beatrici
401bceeb32 mumble/main.cpp: include <shellapi.h> for ShellExecuteEx()
src\mumble\main.cpp(647): error C2065: 'SHELLEXECUTEINFO': undeclared identifier
src\mumble\main.cpp(647): error C2146: syntax error: missing ';' before identifier 'si'
src\mumble\main.cpp(647): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(648): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(648): error C2065: 'SHELLEXECUTEINFO': undeclared identifier
src\mumble\main.cpp(649): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(649): error C2065: 'SHELLEXECUTEINFO': undeclared identifier
src\mumble\main.cpp(650): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(651): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(653): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(653): error C3861: 'ShellExecuteEx': identifier not found
2020-07-11 19:34:49 +02:00
Robert Adam
bca041e2b2
Merge pull request #4358: FIX(shortcuts-ui): Clear selection after remove
Right now after having removed a shortcut from the UI, the next shortcut
in the list is selected automatically. This could cause the user to
accidentally delete this next shortcut by accident as the mouse is
hovering over the remove button anyways.

This change makes mass-removing of shortcuts a bit tedious but I don't
think that this is a common thing to do. Given that you can't undo the
deletion of a shortcut, we should better be safe than sorry with this.
2020-07-11 18:19:42 +02:00
Robert Adam
6a2610c24a
Merge pull request #4352: FEAT(manual-plugin): Show speaker's position
With this change the positions of other speakers are also displayed in
the UI of the ManualPlugin (next to your own position) as red dots. This
allows for better understanding of the positional audio feature.

It is also possible to specify a time for these dots to persist even if
the corresponding speaker has stopped talking. In this time the
respective dot will start to fade out until it gets removed completely.

This does not show the names of the associated speakers in order to not
clutter the UI too much. If this information is needed, the TalkingUI
can be opened alongside the ManualPlugin to get an overview of who's
currently talking.
2020-07-11 17:18:45 +02:00
Robert Adam
fc0a7cef8d
Merge pull request #4360: FIX(translation): Make "Ignore"-string translatable
For some reason the "Ignore" String in the ConnectDialogEdit was not
marked as translatable. This is fixed by this commit.

Fixes #4359
2020-07-10 20:15:38 +02:00
Robert Adam
a0b823c70a Translation update
Updating 'mumble_en.ts'...
    Found 1886 source text(s) (1 new and 1885 already existing)
2020-07-10 19:39:44 +02:00
Robert Adam
cdac8facb4 FIX(translation): Make "Ignore"-string translatable
For some reason the "Ignore" String in the ConnectDialogEdit was not
marked as translatable. This is fixed by this commit.

Fixes #4359
2020-07-10 19:39:44 +02:00
Robert Adam
f07636ad84
Merge pull request #4342: MAINT(readme): Rework READMEs
We had several README files at the project's root. This PR merges and/or moves them around so that we end up with only a single one that's left at the project root.
2020-07-10 19:28:55 +02:00
Robert Adam
8b845341b4 FIX(shortcuts-ui): Clear selection after remove
Right now after having removed a shortcut from the UI, the next shortcut
in the list is selected automatically. This could cause the user to
accidentally delete this next shortcut by accident as the mouse is
hovering over the remove button anyways.

This change makes mass-removing of shortcuts a bit tedious but I don't
think that this is a common thing to do. Given that you can't undo the
deletion of a shortcut, we should better be safe than sorry with this.
2020-07-10 16:49:40 +02:00
Robert Adam
7fb1f8fbc5 MAINT(readme): Added info about reporting issues 2020-07-09 16:33:35 +02:00
Robert Adam
5670cb9964 MAINT(readme): Add link to wiki 2020-07-09 16:31:05 +02:00
Robert Adam
bdbd5663fd Translation update
Updating 'mumble_en.ts'...
    Found 1886 source text(s) (3 new and 1883 already existing)
2020-07-09 16:07:23 +02:00
Robert Adam
f71adb5072 FEAT(manual-plugin): Show speaker's position
With this change the positions of other speakers are also displayed in
the UI of the ManualPlugin (next to your own position) as red dots. This
allows for better understanding of the positional audio feature.

It is also possible to specify a time for these dots to persist even if
the corresponding speaker has stopped talking. In this time the
respective dot will start to fade out until it gets removed completely.

This does not show the names of the associated speakers in order to not
clutter the UI too much. If this information is needed, the TalkingUI
can be opened alongside the ManualPlugin to get an overview of who's
currently talking.
2020-07-09 16:03:23 +02:00
Robert Adam
180f44fbac
Merge pull request #4316: Allow disabling the public-server-list
This implements #4070 and makes it possible to hide the public-server-list from the connect dialog.
The save location was left under ui for backwards compatibility.

This is a follow-up on #4305
2020-07-09 07:56:36 +02:00
Robert Adam
9d244227aa
Merge pull request #4147: FEAT(server): Add rememberduration option
This option allows to set a threshold on how long a user's channel
should be remembered. This is useful for scenarios where users usually
don't want their channel to be remembered by the server unless they had
a disconnect (aka have ot re-connect after a short period of time).

Implements #4143
2020-07-08 19:21:27 +02:00
Tim-Marek Thomas
40bf15b8bd Translation update
Updating 'mumble_en.ts'...
    Found 1884 source text(s) (2 new and 1882 already existing)
2020-07-08 18:22:20 +02:00
Tim-Marek Thomas
0ada48fb2b FEAT(settings): Allow disabling of the public server list
This commit makes it possible to hide the public server list from the connect dialog.
The setting's group was left to be "ui" for backwards compatibility (even though the
actual setting is part of the network settings in the UI).

Implements #4070
2020-07-08 18:21:37 +02:00
Robert Adam
83ccd89396 MAINT(readme): Reorganize README
This re-organizes the README file by splitting it up by OS.

Furthermore this commit has merged the contents of README.Linux into the
main README file in order to have all in one place.
2020-07-08 17:55:46 +02:00
Robert Adam
47d32fde44 MAINT(readme): Deleted README in favor of README.md
Mainting 2 README files that should basically contain the same content
is very error prone in case someone edits one and forgets about the
other.

Thus the Windows installer will now ship the markdown version of the
README as well. It should still be readable - just a little less pretty
if no Markdown-viewer is available.
2020-07-08 17:55:46 +02:00
Robert Adam
870f0c3cfe MAINT(readme): Move READMEs for static server into docs/ 2020-07-08 17:55:46 +02:00
Robert Adam
f45d8245a1 MAINT(readme): Drop "for gamers" from README 2020-07-08 17:55:39 +02:00
Robert Adam
ee1eb75cf5
Merge pull request #4345: FIX(cert, mac): Avoid adding key pairs into system's keychain of MacOS.
One unexpected behavior of Qt's SSL backend is: it will add the key pair
it uses in a connection into the default keychain, and when access the private
key afterward, a pop up will show up asking for the user's permission.
In some case (OS X 10.15.5), this pop up will be suppressed somehow and no private
key is returned.
This env variable will avoid Qt directly adding the key pair into the default keychain,
using a temporary keychain instead.
See #4298 and https://codereview.qt-project.org/c/qt/qtbase/+/184243

After this patch, the key pair won't be automatically added to the default keychain, therefore no annoying popup will show up. Also, #4298 is solved.

Fixes #4298
2020-07-08 17:36:17 +02:00
Terry Geng
8de96f5073
FIX(cert, mac): Avoid adding key pairs into system's keychain of MacOS.
One unexpected behavior of Qt's SSL backend is: it will add the key pair
it uses in a connection into the default keychain, and when access the private
key afterwards, a pop up will show up asking for user's permission.
In some case (OS X 10.15.5), this pop up will be suppressed somehow and no private
key is returned.
This env variable will avoid Qt directly adding the key pair into the default keychain,
using a temporary keychain instead.
See #4298 and https://codereview.qt-project.org/c/qt/qtbase/+/184243

Fixes #4298
2020-07-08 22:39:44 +08:00
Robert Adam
34dd6653e6
Merge pull request #4349: CI(azure): Fix brew-error for installed packages
If brew is asked to install a package that is already installed, it will
set a non-zero exit status that causes the CI to abort and fail.

The fix for that is to explicitly check every package for whether it is
already installed and only if they are not, ask brew to install them.

This fix is the same that has been applied in
3e0c506
2020-07-08 16:37:44 +02:00
Robert Adam
e28855e963 CI(azure): Fix brew-error for installed packages
If brew is asked to install a package that is already installed, it will
set a non-zero exit status that causes the CI to abort and fail.

The fix for that is to explicitly check every package for whether it is
already installed and only if they are not, ask brew to install them.

This fix is the same that has been applied in
3e0c5065d2
2020-07-08 15:57:08 +02:00
deluxghost
13b85a3ae2 FEAT(server): Add rememberduration option
This option allows to set a threshold on how long a user's channel
should be remembered. This is useful for scenarios where users usually
don't want their channel to be remembered by the server unless they had
a disconnect (aka have ot re-connect after a short period of time).

Implements #4143
2020-07-03 19:27:45 +02:00
Robert Adam
20f47e7b6c MAINT(readme): Added launch instructions for Linux
The README file was missing information on how to run Mumble on Linux.

Fixes #4334
2020-07-03 18:26:51 +02:00
Robert Adam
e2f99efa7e
Merge pull request #4339: FEAT(talking-ui): Show selected status icons in TalkingUI
The icons for (local/self) muting and (self) deafening of a user are now
also displayed in the TalkingUI. The used icons are the same as in the
MainWindow.
2020-07-03 18:03:43 +02:00
Robert Adam
bb95897c52
Merge pull request #4340: MAINT(snapshot-versions): Change snapshot version format
Until now the snapshot versions looked something like
1.4.0~444~g4afab7c~snapshot. They include the Mumble version which they
are a snapshot for at the beginning, then the revision number (the
amount of commits since the last tag in git's history), followed by the
latest commit's hash (prefixed by "g") and finally the word "snapshot".

The problem with this approach is that it requires knowledge of the git
history at least until the most recent tag. In addition to that it also
requires someone to think about moving the "tag-for-ci" that marks a
release-state in the master branch to be set on every release.

The history requirement is not an issue for a normal clone of the
repository but if someone (e.g. the CI) performs a shallow clone of the
repository, then the script fails.

In order to address this problem, this commit changes the version format
to be 1.4.0~2020-07-02~g4afab7c67~snapshot. The revision number got
replaced by the date of the most recent commit (in ISO format) and the
commit hash is now abbreviated by git itself as it sees fit instead of
manually truncating the commit hash at 7 characters.

That way the script doesn't require knowledge of the latest tag and all
the history after that. That way the script can now be run in a shallow
clone of depth 1.
2020-07-03 15:06:52 +02:00
Robert Adam
6d01625af8 MAINT(snapshot-versions): Change snapshot version format
Until now the snapshot versions looked something like
1.4.0~444~g4afab7c~snapshot. They include the Mumble version which they
are a snapshot for at the beginning, then the revision number (the
amount of commits since the last tag in git's history), followed by the
latest commit's hash (prefixed by "g") and finally the word "snapshot".

The problem with this approach is that it requires knowledge of the git
history at least until the most recent tag. In addition to that it also
requires someone to think about moving the "tag-for-ci" that marks a
release-state in the master branch to be set on every release.

The history requirement is not an issue for a normal clone of the
repository but if someone (e.g. the CI) performs a shallow clone of the
repository, then the script fails.

In order to address this problem, this commit changes the version format
to be 1.4.0~2020-07-02~g4afab7c67~snapshot. The revision number got
replaced by the date of the most recent commit (in ISO format) and the
commit hash is now abbreviated by git itself as it sees fit instead of
manually truncating the commit hash at 7 characters.

That way the script doesn't require knowledge of the latest tag and all
the history after that. That way the script can now be run in a shallow
clone of depth 1.
2020-07-03 13:41:56 +02:00
Robert Adam
e2213dd0cb
Merge pull request #4322: 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 19:05:43 +02:00
Robert Adam
740f1f7f8e Translation update
Updating 'mumble_en.ts'...
    Found 1881 source text(s) (1 new and 1880 already existing)
2020-07-02 17:39:36 +02:00
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
Robert Adam
7faa89bbbc FEAT(talking-ui): Show selected status icons in TalkingUI
The icons for (local/self) muting and (self) deafening of a user are now
also displayed in the TalkingUI. The used icons are the same as in the
MainWindow.
2020-07-02 13:58:52 +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