Currently translated at 98.7% (2018 of 2043 strings)
TRANSLATION: Update German translation
Currently translated at 98.4% (2012 of 2043 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Co-authored-by: Thomas Umbach <thum@vikings.net>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
This PR introduces a fully featured search dialog.
Note that selections in the search dialog are synchronized with the main
UI and thus "whisper to selection" works by selecting something in the
search dialog as well.
There are also default actions that are executed when a search result is
activated (double-clicked or pressing enter on it). What that action is
exactly, can be configured in the settings.
Furthermore the context menu works as expected when invoked on entries
in the search result list.
In order to disambiguate the results, the full channel hierarchy to the
search result's parent channel is shown below each result.
The search dialog can be toggled via Ctrl+F when Mumble has focus or by
using the new entry in the toolbar. Additionally there is a new global
shortcut that can be configured for this purpose. Note however that on
Windows the SearchDialog won't obtain focus when toggled in a situation
when Mumble does not have focus already.
This commit introduces a fully featured search dialog.
Note that selections in the search dialog are synchronized with the main
UI and thus "whisper to selection" works by selecting something in the
search dialog as well.
There are also default actions that are executed when a search result is
activated (double-clicked or pressing enter on it). What that action is
exactly, can be configured in the settings.
Furthermore the context menu works as expected when invoked on entries
in the search result list.
In order to disambiguate the results, the full channel hierarchy to the
search result's parent channel is shown below each result.
The search dialog can be toggled via Ctrl+F when Mumble has focus or by
using the new entry in the toolbar. Additionally there is a new global
shortcut that can be configured for this purpose. Note however that on
Windows the search dialog won't obtain focus when toggled in a situation
when Mumble does not have focus already.
This pull request fixes the following issues:
The revamped raw inputs are not saving / loading shortcuts for the Windows client.
Keyboard shortcuts that are outside of the normal range show up as "Unknown"
Fix the shortcuts events not firing for input buttons when the structs were compared using the default memcmp.
The shortcut for toggling channel filters was Ctrl+F. While this makes
sense semantically, this specific shortcut is associated with starting a
search in 99% of all applications out there. Thus using it for something
else does not make for a very smooth user experience.
The new shortcut for filtering is thus set to be Alt+F instead.
Before the channel tree (UserView) in the main UI had a "feature" called
keyboard search. If the channel tree had focus and the user started
typing on their keyboard, Mumble would search for an entry in the tree
(either channel or user) that matches the invisibly typed search String.
This is however very impractical for searching as it is unclear if and
when this will expand collapsed entries or how subsequent searches work.
It is not even clear when the current search has ended and thus typing
another letter will start a new one.
And for users who don't expect such an invisible feature, this is a bad
experience as their channel tree selection jumps around wildly if they
accidentally push a key.
The search functionality will be provided by a more robust
implementation in a following commit.
Instead of implicitly assuming that the root channel has ID 0, there is
now an explicit constant (of the same value) that is used in all places
instead of literal "0" when referring to the root channel's ID.
Fixes InputHid buttons not firing events. For consistency and to prevent hard to track down memcmp issues the other Input structs also have comparators.
This was partially solved by the memory initializations found earlier via lnt-uninitialized-local.
QVariant uses the comparators but defaults to memcmp when they don't exist. memcmp works until you have non-primitives like std::string.
QMetaType::registerComparators requires both the == and < operators for each metatype.
GlobalShortcutEngine::handleButton() has calls to qlButtonList.indexOf() which need comparisons to work properly.
when GetKeyNameText() fails
For keys like F13 - F24 where GetKeyNameText() doesn't have a label.
Use similar technique to the InputMouse to show something other than "Unknown"
lnt-uninitialized-local errors were preventing InputKeyboard shortcuts from being detected/fired after relaunch.
When initially setup they would work until the client was relaunched.
Expression: invalid comparator
Thrown when opening the Settings window.
This started happening when I had multiple shortcuts defined and running in debug mode.
std::sort requires strict weak ordering. This fixes the compare to provide it.
to the Input structs
Step 1 to fix Windows clients loading / saving shortcuts since 3dc7b00d09
Adds the stream operators to the Input structs and a call to register them in Settings.cpp
The metatypes have to be registered in Settings.cpp because it runs before GlobalShortcuts are initialized. Without being registered it will not load the Input buttons.
Every audio backend implementation was moving the current device at the top.
This commit replaces that logic by selecting the current device in the combobox.
Removes invalid characters (UTF-16 BOM) at the start of line 6.
The profiledir variable is set properly again. Fixing the vcpkg directory being created in the root of the system directory.
Impact
Anyone that built the vcpkg using get_mumble_dependecies.ps1 should move their vcpkg folder to the userprofile directory before re-running it. If vcpkg doesn't exist under the userprofile directory it will be recreated by the script.
Issue
Original error message below:
$profiledir` : The term '$profiledir' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At C:\Dev\Git\mumble\scripts\vcpkg\get_mumble_dependencies.ps1:6 char:1
+ $profiledir = $Env:USERPROFILE
+ ~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: ($profiledir:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
In the latest Qt version, specifying a recrsion mode when creating a
mutex was deprecated in favor of QRecursiveMutex being used for the
cases where recursion is needed.
Given that we only ever needed non-recursive mutexes, all we had to do
was to remove the argument to the ctor.
Ref.: Upstream commit deprecating that ctor:
qt/qtbase@d4b206bFixes#4973
Removes invalid characters (UTF-16 BOM) at the start of line 6.
The profiledir variable is set properly again. Fixing the vcpkg directory being created in the root of the system directory.
Original error message below:
$profiledir : The term '$profiledir' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At C:\Dev\Git\mumble\scripts\vcpkg\get_mumble_dependencies.ps1:6 char:1
+ $profiledir = $Env:USERPROFILE
+ ~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: ($profiledir:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
In the latest Qt version, specifying a recrsion mode when creating a
mutex was deprecated in favor of QRecursiveMutex being used for the
cases where recursion is needed.
Given that we only ever needed non-recursive mutexes, all we had to do
was to remove the argument to the ctor.
Ref.: Upstream commit deprecating that ctor:
d4b206b246Fixes#4973