Previously, the Mumble version was encoded with a uint32
in the network protocol reserving 2 bytes for the major
component and 1 byte for each minor and patch.
The versioning format was changed to include a build
number in the patch field. With a recent update (1.4.274)
the patch field exceeded 255 for the first time and broke
the protocol version.
This commit completely reworks how the version is stored
internally and transfered with the network protocol.
The new version is a uint64 and consists of 4 fields with
2 bytes each. This allows each version component to reach
up to 65535. Furthermore, all instances of integer version
types have been replaced with the alias Version::full_t for
a better abstraction. Version literals have been replaced by
Version::fromComponents calls.
Fixes#5827
Previously, the Mumble version was encoded with a uint32
in the network protocol reserving 2 bytes for the major
component and 1 byte for each minor and patch.
The versioning format was changed to include a build
number in the patch field. With a recent update (1.4.274)
the patch field exceeded 255 for the first time and broke
the protocol version.
This commit completely reworks how the version is stored
internally and transfered with the network protocol.
The new version is a uint64 and consists of 4 fields with
2 bytes each. This allows each version component to reach
up to 65535. Furthermore, all instances of integer version
types have been replaced with the alias Version::full_t for
a better abstraction. Version literals have been replaced by
Version::fromComponents calls.
Fixes#5827
This has the advantage of not creating a dependency on the respective
.so/.dll which will be present, even if Tracy support is actually
disabled for the binary. This in turn can cause some issues for
packagers.
This has the advantage of not creating a dependency on the respective
.so/.dll which will be present, even if Tracy support is actually
disabled for the binary. This in turn can cause some issues for
packagers.
Fix a typo in the COMPILER_HAS_MBIG_OBJ test which fixes this failure:
c++: warning: Wa,-mbig-obj: linker input file unused because linking not done
c++: error: Wa,-mbig-obj: linker input file not found: No such file or directory
Fixed chat log scaling issue introduced by PR #5619
The bug fixed by that commit is still fixed after this PR, but the
regression introduced has been resolved.
Fixes#5818
Fixed chat log scaling issue introduced by PR #5619 (my fault, whoops)
The bug fixed by that commit is still fixed after this PR, but the
regression introduced has been resolved.
Fixes#5818
In 39047d2 a new note was added for
when a user enters minimal view but is not connected to a server.
Incidentally, this caused the new note to appear in the popup menu
appearing as a context menu when using a custom layout, which in theory
would allow a manual toggling of that note's visibility. However, this
is not what we want and thus this commit makes sure that this popup menu
only contains entries for UI elements that we really want to be manually
toggelable.
Previously (#5772), we implemented a fix to set the status icon size
according to the user display scaling. The calculation is based upon
font sizes. However, due to an oversight, the wrong font size was used
as the base for this calculation. However, the problem was not visible,
if by coincidence the correct font size was the same as the one used by
accident.
This commit changes the calculation of the icon size once again to use
the correct font information.
Fixes one part of #5817
Due to a regression introduced in
6aa8869 when hiding individual UI
components (e.g. the icon toolbar) - possible when using a custom
layout - these elements would re-appear after restarting Mumble (or
after applying the settings or after exiting minimal view).
The reason is that the state of whether or not a given UI component is
shown or not is saved as the window's geometry. In the above commit we
added code that explicitly shows or hides these elements after the
geometry has been restored, thus overwriting the visibility changes of
this geometry restoration.
The fix for this problem is to only explicitly hide the elements when
entering minimal view but let the showing be handled by restoring the
window's geometry. Thus, only those elements are shown again, that have
previously been visible as well (and thus have not been explicitly
hidden by the user).
Fixes#5832
Previously (#5772), we implemented a fix to set the status icon size
according to the user display scaling. The calculation is based upon
font sizes. However, due to an oversight, the wrong font size was used
as the base for this calculation. However, the problem was not visible,
if by coincidence the correct font size was the same as the one used by
accident.
This commit changes the calculation of the icon size once again to use
the correct font information.
Fixes one part of #5817
In 39047d2a57 a new note was added for
when a user enters minimal view but is not connected to a server.
Incidentally, this caused the new note to appear in the popup menu
appearing as a context menu when using a custom layout, which in theory
would allow a manual toggling of that note's visibility. However, this
is not what we want and thus this commit makes sure that this popup menu
only contains entries for UI elements that we really want to be manually
toggelable.
Due to a regression introduced in
6aa88691e1 when hiding individual UI
components (e.g. the icon toolbar) - possible when using a custom
layout - these elements would re-appear after restarting Mumble (or
after applying the settings or after exiting minimal view).
The reason is that the state of whether or not a given UI component is
shown or not is saved as the window's geometry. In the above commit we
added code that explicitly shows or hides these elements after the
geometry has been restored, thus overwriting the visibility changes of
this geometry restoration.
The fix for this problem is to only explicitly hide the elements when
entering minimal view but let the showing be handled by restoring the
window's geometry. Thus, only those elements are shown again, that have
previously been visible as well (and thus have not been explicitly
hidden by the user).
Fixes#5832
hen sending a link that contains a percent followed by a digit, where
the digit is <= 2 (e.g. %1), the link's target would be messed up as the
respective %x would be treated as an argument replacement specifier by
Qt (and would thus be replaced by some replacement text).
The reason for this lies in the use of two consecutive calls to
QString::arg, where the second call will gladly try to replace any new
replacement specifications introduced with the first replacement.
The solution is to use an overload of QString::arg, that takes both
replacement texts at the same time and applies them in one go. This
specifically allows to ignore any newly introduced replacement
specifications.
The bug has been introduced with the introduction of Markdown support in
2da3f0d but has been masked by a bug
that stopped link recognition at percent signs. This has been fixed in
727049c and since then also appears for
plain links (for markdown-style links using the syntax the bug was
probably present throughout).
Fixes#5819
When sending a link that contains a percent followed by a digit, where
the digit is <= 2 (e.g. %1), the link's target would be messed up as the
respective %x would be treated as an argument replacement specifier by
Qt (and would thus be replaced by some replacement text).
The reason for this lies in the use of two consecutive calls to
QString::arg, where the second call will gladly try to replace any new
replacement specifications introduced with the first replacement.
The solution is to use an overload of QString::arg, that takes both
replacement texts at the same time and applies them in one go. This
specifically allows to ignore any newly introduced replacement
specifications.
The bug has been introduced with the introduction of Markdown support in
2da3f0d39e but has been masked by a bug
that stopped link recognition at percent signs. This has been fixed in
727049c526 and since then also appears for
plain links (for markdown-style links using the []() syntax the bug was
probably present throughout).
Fixes#5819
Sometimes backport commits still have a "Merged PR xxx" part in them,
which we have to strip before processing the message. This is exactly
what this commit adds to the existing changelog script.
Sometimes backport commits still have a "Merged PR xxx" part in them,
which we have to strip before processing the message. This is exactly
what this commit adds to the existing changelog script.
As requested in #4748 this commit implements a volume control
slider for User local volume and Listener local volume in the
relevant context menus for easier reach and quicker adjustments.
The VolumeSliderWidgetAction was implemented as a base class
for UserLocalVolumeSlider and ListenerLocalVolumeSlider which were
then added as QActions in the MainWindow to the context menus qmUser and
qmListener respectively.
The existing LocalVolumeDialogs for users and listeners have been removed.
Additionally, the new generic MenuLabel class was created to be able to
add non-interactive items into QMenus.
Fixes#4748
As requested in #4748 this commit implements a volume control
slider for User local volume and Listener local volume in the
relevant context menus for easier reach and quicker adjustments.
The VolumeSliderWidgetAction was implemented as a base class
for UserLocalVolumeSlider and ListenerLocalVolumeSlider which were
then added as QActions in the MainWindow to the context menus qmUser and
qmListener respectively.
The existing LocalVolumeDialogs for users and listeners have been removed.
Additionally, the new generic MenuLabel class was created to be able to
add non-interactive items into QMenus.
Co-authored-by: Hartmnt <hartmunt@protonmail.com>
Previously the script would assemble the query URL by taking the
individual parameters literally. However, for certain inputs this could
lead to an invalid URL, resulting in an error 400 (Bad Request) when
attempting to make this query to the server.
In order to avoid these situations, the parameters are now properly
encoded (quoted) before being inserted into the query URL. Thus, we
ensure to always produce valid URLs.
Previously the script would assemble the query URL by taking the
individual parameters literally. However, for certain inputs this could
lead to an invalid URL, resulting in an error 400 (Bad Request) when
attempting to make this query to the server.
In order to avoid these situations, the parameters are now properly
encoded (quoted) before being inserted into the query URL. Thus, we
ensure to always produce valid URLs.