Commit Graph

10228 Commits

Author SHA1 Message Date
Robert Adam
bf4ad2bc72
Merge PR #5941: Add donation link to AppStream Metadata 2022-10-28 17:25:05 +02:00
Dark Dragon
ba9033584c MAINT: Add donation link to AppStream Metadata 2022-10-28 11:54:23 +02:00
Robert Adam
1b26a55ef1
Merge PR #5917: FIX(client): Fix target and permission selection in updateMenuPermissions
This commit addresses two issues within the 'updateMenuPermissions' method:
First, the target selection introduced in be7ad39 was suffering from the same problem as described in #3090 where selected tree items were not preferred for determining targets. This issue caused the chat bar to be erroneously disabled in certain situations, for example when connecting to a channel with "Text Message" permission disabled and switching to a different by left-clicking.
The second issue is an oversight in 441d06f where the 'Use selected item as the chat bar target' option was introduced. The permission check in 'updateMenuPermissions' was not updated to take the new option into account and therefore always used the selected target for the permission query independent of the state of the option.

The fix consists of using the unified 'getContextMenuTargets' for target selection and adding a special case for handling the enabled state of the chat bar by taking the new option into account.

Fixes #1799
2022-10-18 08:14:20 +02:00
Hartmnt
8eb12e9a09 FIX(client): Fix target and permission selection in updateMenuPermissions
This commit addresses two issues within the 'updateMenuPermissions'
method:
First, the target selection introduced in be7ad39fd was suffering
from the same problem as described in #3090 where selected tree items
were not preferred for determining targets. This issue caused the
chat bar to be erroneously disabled in certain situations, for example
when connecting to a channel with "Text Message" permission disabled
and switching to a different by left-clicking.
The second issue is an oversight in 441d06f6d where the 'Use selected
item as the chat bar target' option was introduced. The permission
check in 'updateMenuPermissions' was not updated to take the new
option into account and therefore always used the selected target
for the permission query independent of the state of the option.

The fix consists of using the unified 'getContextMenuTargets' for
target selection and adding a special case for handling the enabled
state of the chat bar by taking the new option into account.

Fixes #1799
2022-10-17 13:19:53 +00:00
Robert Adam
e0c2b37daa
Merege PR #5928: CI(github-actions): Update Ubuntu runners
We were still using a runner on Ubuntu 18.04, which is getting deprecated by GitHub in the near future. In order to avoid having failing CI jobs due to that and also in order to keep up with changes in Ubuntu, we now build on 20.04 and 22.04 instead.
2022-10-14 20:42:18 +02:00
Robert Adam
6aeb26a795
Merge PR #5927: FIX(client, ui): remove gaps within chat
This commit removes the additional gaps within the chat. The gaps were introduced by Qt's block-padding between frames. With this commit, the block after the last chat message is set to invisible.

The previous approach of a very small fontPoinzSize() within the blockCharFormat() unfortunately didn't work on Windows. This variant should work on both Windows and Linux.

Fixes #5886.
2022-10-14 20:03:31 +02:00
Robert Adam
9c46926778 CI(github-actions): Update Ubuntu runners
We were still using a runner on Ubuntu 18.04, which is getting
deprecated by GitHub in the near future. In order to avoid having
failing CI jobs due to that and also in order to keep up with changes in
Ubuntu, we now build on 20.04 and 22.04 instead.
2022-10-14 20:02:00 +02:00
Benjamin Kästner
c21c6a0dcd FIX(client, ui): remove gaps within chat
This commit removes the additional gaps within the chat. The gaps were
introduced by Qt's block-padding between frames. This commits sets all
those blocks invisible: the leading block is hidden within `Log::Log`,
whereas all following blocks are hidden after their preceding frame
has been added within `Log::log`.

The previous approach of a very small `fontPoinzSize()` within the
`blockCharFormat()` unfortunately didn't work on Windows. This variant
should work on both Windows and Linux; unfortunately, I was only able
to test it on Windows.

Fixes #5886.
2022-10-14 14:29:33 +02:00
Robert Adam
78350de057
Merge PR #5918: FIX(server): Explicitly set parsed timestamps to UTC for rememberchannelduration
In ccbf407 the rememberchannelduration logic was improved. An explicit call to 'setTimeSpec(Qt::UTC)' was removed, because it was assumed that 'secsTo' would already be sufficient as it converts both inputs to UTC automatically. Due to an oversight this lead to a regression.

The reason setTimeSpec is actually needed is because the DB already contains UTC values. The setTimeSpec call tells Qt that the loaded values are actually already UTC and do not have to be converted. Without the call to setTimeSpec, the DB values are effectively converted twice, which gives rememberchannelduration an offset based on the server local time.
2022-10-13 08:01:10 +02:00
Robert Adam
7f7b9ecf12
Merge PR #5916: FIX(client): Fixes link context menu creation for channels
The commit 902fe58 introduced links in the log for users and channels. This either never worked correctly, or regressed due to an undocumented behavior change in Qt. The 'channelid' stored in the host part of a QUrl is automatically converted to an IP address (e.g. '1' -> '0.0.0.1') which lets the channel lookup fail. A different code path for clients was present, so the issue was not observed often (or at all) there.

This commit changes the host part composition to contain a string (e.g. '1' > 'id.1') and makes sure this new string is parsed correctly.

Fixes #2961
2022-10-13 07:55:17 +02:00
Robert Adam
12c822ff90
Merge PR #5912: Update copyright notice to 2022 2022-10-12 16:14:45 +02:00
Hartmnt
6205e7fb32 FIX(client): Fixes link context menu creation for channels
The commit 902fe5841c introduced links in the log for users
and channels. This either never worked correctly, or regressed due
to an undocumented behavior change in Qt. The 'channelid' stored in
the host part of a QUrl is automatically converted to an IP address
(e.g. '1' -> '0.0.0.1') which lets the channel lookup fail.
A different code path for clients was present, so the issue was not
observed often (or at all) there.

This commit changes the host part composition to contain a string
(e.g. '1' -> 'id.1') and makes sure this new string is parsed correctly.

Fixes #2961
2022-10-11 15:05:20 +00:00
Hartmnt
98056b6da9 FIX(server): Explicitly set parsed timestamps to UTC for rememberchannelduration
In ccbf4072c the rememberchannelduration logic was improved. An explicit
call to 'setTimeSpec(Qt::UTC)' was removed, because it was assumed that
'secsTo' would already be sufficient as it converts both inputs to UTC
automatically. Due to an oversight this lead to a regression.

The reason setTimeSpec is acutally needed is because the DB already
contains UTC values. The setTimeSpec call tells Qt that the loaded
values are actually already UTC and do not have to be converted.
Without the call to setTimeSpec, the DB values are effectively
converted twice, which gives rememberchannelduration an offset
based on the server local time.
2022-10-08 11:24:30 +00:00
Robert Adam
3d1aae3730
Merge PR #5908: CI(github-actions): Use versioned tags for winget-releaser 2022-10-03 10:22:47 +02:00
Vedant
6677d6ff5f CI(github-actions): Use versioned tags for winget-releaser 2022-10-03 05:22:33 +00:00
Benjamin Kästner
841d44c958 MAINT: Update copyright notice to 2022
Some instances of "2021" were not adjusted during this years update,
see d100ff1467.
2022-10-02 12:08:50 +02:00
Robert Adam
600ffb476a
Merge PR #5893: FIX(server, rpc): Don't send useless UserState message
As it was, the sent UserState message would have only contained the user's session ID, which in and of itself is absolutely useless. Thus, it is better to not send a UserState message in this case.
2022-09-22 10:00:30 +02:00
Robert Adam
93019fd0cc FIX(server, rpc): Don't send useless UserState message
As it was, the sent UserState message would have only contained the
user's session ID, which in and of itself is absolutely useless.
Thus, it is better to not send a UserState message in this case.
2022-09-19 09:33:32 +02:00
Robert Adam
40f2edb302
Merge PR #5799: FEAT(client, ui): Extended quit behavior setting
This commit extends the quit behavior setting from being a binary toggle
between ask or don't ask, when quitting while connected to a server, to
give the user the options for Mumble to ask, minimize or quit straight
away, either always or only while connected to a server.

Fixes #5282
2022-09-16 17:39:20 +02:00
Robert Adam
a1769a6707 TRANSLATION: Update translation files 2022-09-16 15:14:18 +02:00
Merkaber
4c4dfa7dfa FEAT(client, ui): Extended quit behavior setting
This commit extends the quit behavior setting from being a binary toggle
between ask or don't ask, when quitting while connected to a server, to
give the user the options for Mumble to ask, minimize or quit straight
away, either always or only while connected to a server.

Fixes #5282
2022-09-16 15:14:02 +02:00
Merkaber
fa471b69a9 BUILD(client): migrateSettings now takes reference
In order for migrateSettings to do what it is supposed to do, it must
takes its argument by reference and not by value.
2022-09-16 15:09:38 +02:00
Robert Adam
7b73c624e6
Merge PR #5884: CI(github-actions): Fix workflow file syntax 2022-09-14 20:00:11 +02:00
Robert Adam
6a26b2113e CI(github-actions): Fix workflow file syntax 2022-09-14 19:26:04 +02:00
Robert Adam
abbb4cf9f1
Merge PR #5881: BUILD(cmake): Silence pkg-config warnings 2022-09-12 15:37:55 +02:00
Robert Adam
c7b127f7be BUILD(cmake): Silence pkg-config warnings
If the systemd module was not installed (or could not be located by
pkg-config for other reasons), a big chunk of text would be emitted to
stdout stating that no such module could be found and how one might
resolve this issue. However, we don't want to throw this at our users as
we have backup code paths implemented for the case in which pkg-config
can't query the necessary information.

This commit makes sure that these warnings are not emitted anymore.
2022-09-12 15:10:04 +02:00
Robert Adam
8826f1ec63
Merge PR #5856: FEAT: Make channel listeners persistent on server
For registered users, the server will now remember their channel
listeners (and their volume adjustments) and will restore them once the
user rejoins this server.
2022-09-12 14:40:37 +02:00
Robert Adam
3f4b00a425 FEAT: Make channel listeners persistent on server
For registered users, the server will now remember their channel
listeners (and their volume adjustments) and will restore them once the
user rejoins this server.
2022-09-12 12:42:01 +02:00
Robert Adam
ac2e5bccb5
Merge PR #5874: CI(github-actions): Automatically publish to WinGet 2022-09-11 10:23:01 +02:00
Vedant
4551e98c85 CI(github-actions): Automatically publish to WinGet
This commit introduces an automatic approach that will publish the
Windows installers to the WinGet repository every time a release is
created on GitHub.

Fixes #5870
2022-09-11 09:19:32 +02:00
Robert Adam
98fb1cd8b4
Merge PR #5838: MAINT/BUILD: Clean up scripts directory 2022-09-10 19:00:09 +02:00
Robert Adam
b81b06001d MAINT: Rename Murmur.ice to MumbleServer.ice 2022-09-10 17:28:34 +02:00
Robert Adam
1852692490 BUILD(cmake): Also install Murmur.ice file 2022-09-10 17:28:34 +02:00
Robert Adam
33c39a6eb8 BUILD(cmake): Also install DBus config file 2022-09-10 17:28:34 +02:00
Robert Adam
384c55db62 MAINT: Also check install-path in mumble-overlay 2022-09-10 17:28:34 +02:00
Robert Adam
09a17879f8 BUILD(cmake): Use EXCLUDE_FROM_ALL for 3rdparty subdirs
This prevents adding all targets in said subdirectories to the ALL
target by default. Instead, only those targets that are explicitly
referenced (e.g. via target_link_libraries) are built.

This also has the side-effect that any install-directives in these
subdirectories are also ignored for the default install targets which
prevents these libraries of unconditionally installing themselves when
issuing a make install. Instead, we now have to make any 3rdparty
component that we do indeed want to install, do so explicitly (e.g. via
install_library()).
2022-09-10 17:28:34 +02:00
Robert Adam
b61091dbd7 BUILD(cmake): Configure overlay files only if client is built 2022-09-10 17:28:34 +02:00
Robert Adam
5fe1ae8d6b BUILD(cmake): Don't always recompile mumble_translations.qrc 2022-09-10 17:28:34 +02:00
Robert Adam
d47b4ea3ba CI(github-actions): Display install paths 2022-09-10 17:28:34 +02:00
Robert Adam
d2c7289592 BUILD(cmake): Install user-wrapper script and service file 2022-09-10 17:28:34 +02:00
Robert Adam
cd068fe3ee MAINT: Improve mumble-server.service
This essentially copied the file from
ba167269f8/trunk/murmur.service
and only adapted it in as far as that it uses the actual install paths.
2022-09-10 17:28:34 +02:00
Robert Adam
ef3ee9546a MAINT: Add systemd-sysusers config file 2022-09-10 17:28:34 +02:00
Robert Adam
671524715c BUILD(cmake): Added get_pkgconf_variable function 2022-09-10 17:28:34 +02:00
Robert Adam
7b6bb49271 MAINT: Delete mumble-server.logrotate.in
The logrotate script is not intended to be used on systems with systemd
support. However, we don't want to take on the burden of having to keep
around and maintain config files for non-systemd systems.
2022-09-10 17:28:34 +02:00
Robert Adam
b59a2b6774 BUILD: Use correct paths in mumble-server.service.in 2022-09-10 17:28:34 +02:00
Robert Adam
133119ec40 BUILD(cmake): Define MUMBLE_INSTALL_SYSCONFDIR 2022-09-10 17:28:34 +02:00
Robert Adam
703af920d8 BUILD(cmake): Always keep absolute install paths around
Previously we would define our install paths as relative paths when
using the packaging option and turning them into absolute paths
otherwise.

While relative paths are required for CPack to work properly, we use
the paths e.g. for passing them in via macros and there we absolutely
require the full, absolute paths to be passed.

Thus, this commit removed the discrepancy of the results when built with
packagin=ON vs packagin=OFF and now always defines the install paths as
relative paths. However, we now keep an additional set of paths around
that are now always absolute.
2022-09-10 17:28:34 +02:00
Robert Adam
077c58453b BUILD: Ensure aux files always use correct names
The auxiliary files will now make use of configure_file in order to
ensure that e.g. the binary names used in them always match the names of
the actually built binaries.
2022-09-10 17:28:34 +02:00
Robert Adam
8b54b6fd0c BUILD: Add delayed_configure_files.cmake 2022-09-10 17:28:34 +02:00
Robert Adam
bf2ee8578c FIX(server): Look for mumble-server* files
Previously the server was only looking for files named e.g. murmur.ini
or murmur.sqlite. With this commit, the server will now look first for
files called mumble_server.ini and mumble_server.sqlite before falling
back to the old names (for backwards compatibility).

This is meant as a means to drive forward the server renaming from
murmur(d) to mumble-server.
2022-09-10 17:28:34 +02:00