Age | Commit message (Collapse) | Author |
|
|
|
Apparently the first commit (59ae429972c16c377135bcccfee646b7df446933)
did not include all files.
Furthermore the used script tended to produce funny results in certain
cases. This has been fixed and as a result thereof a few more changes
were made in this second run.
|
|
Defining a macro (global namespace) named "g" as a shortcut for
accessing the Global struct never was a good idea. In order to avoid the
problems this created (you must never name a variable "g" or include
Global.h before a header that may have such a variable), the macro was
removed and was instead replaced with a static function Global::get()
that returns a reference to the Global struct.
Just as with the old g macro, the existence of the respective pointer is
not explicitly checked before dereferencing. It is assumed that
everywhere where it is used, the Global struct has already been created.
|
|
This was done by running scripts/updateLicenseHeaders.py and then
manually editing the LICENSE file.
|
|
|
|
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)`)
|
|
Currently if a user has a "move" permission, they can also reset the comment or avatar of another user as describe in issue #1016. I stumbled into this by accident when I gave a user the move permission to help get new users into the right channels with their friends.
After reviewing the content found in PR #1223 which introduced the reset avatar feature, I found the code that allowed a user to do these resets and changed the required permission from Move to RegisterUser as suggested by @bontibon in the issue thread. As they state, this permission makes more sense than the move permission.
After compiling I found no issues and the changes worked as expected. The one caveat is that if the server has these changes implemented and not the client, (seems daft but this is preferable for me so I don't have to ask my users to change anything) it makes the permissions required to do the reset be move AND registeruser. The client will expect the user to have Move permission and the server will expect the RegisterUser permission, hence then requiring both.
Fixes #1016
|
|
This commit introduces a new permission, ResetUserContent, to grant the ability to reset another user's comment or avatar.
It also includes a check in the ACL editor window. If the server version is less than 1.4.0 then don't show the new permission in the ACL checkbox list as the server won't respond to it.
On older servers the Move permission in the root channel was also used for allowing or denying comment and avatar changes.
|
|
Qt5 provides different ways of improving the accessibility of the
application. One of these are accessibility names. This basically
assigns a given UI element a name that can be used by e.g. a screen
reader.
This commit adds lots of these names to almost all dialogs.
|
|
This implements #3319 by allowing users to "listen" to a channel they
have not joined. Doing so will place a "listener proxy" (in other
software this is sometimes known as a "phantom") in that channel which
will look like a normal user except that it'll have the same name as the
user listening to that channel and an ear-icon instead of the normal
avatar-icon. It will also always show a muted-icon next to it.
If a listener proxy is in a channel, the server will route all audio
packets from that channel to the user the proxy belongs to (as if that
user was in the channel). Note though that the opposite of this is not
true: The users in the channel will not hear audio from the listening
user unless that user decides to join the channel.
Furthermore it is possible to set a local volume adjustment for each
individual proxy that will be applied to all audio that is received
through it.
|
|
|
|
|
|
This commit adds all the missing includes when the PCH header is not used.
Also, some includes are reordered and/or made consistent (e.g. "#include <QtEndian>" -> "#include <QtCore/QtEndian>").
|
|
According to Qt's documentation the PCH header doesn't need to be included.
From https://doc.qt.io/qt-5/qmake-precompiledheaders.html:
"To make your project use precompiled headers, you only need to define the PRECOMPILED_HEADER variable in your project file."
"qmake will handle the rest, to ensure the creation and use of the precompiled header file. You do not need to include the precompiled header file in HEADERS, as qmake will do this if the configuration supports precompiled headers."
|
|
QList::swapItemsAt()
https://github.com/qt/qtbase/commit/7f4d0405b409b1d3aa9d91e31972669576ec698c
|
|
https://github.com/qt/qtbase/commit/5957f245c6c77c98d7e90d614c9fe2cdbfe7e8e6
|
|
protobuf 3.7
In protobuf 3.7 'g' is used as argument name, which conflicts with our global struct:
google/protobuf/stubs/strutil.h:720:47: error: 'g_global_struct' declared as a pointer to a reference of type 'const google::protobuf::strings::AlphaNum &'
const AlphaNum& g);
^
./Global.h:131:12: note: expanded from macro 'g'
^
The solution consists in including "Global.h" after any headers that include "Mumble.pb.h" (which in turn includes protobuf's headers).
"Mumble.pb.h" is generated by protobuf.
|
|
|
|
Qt5 documents that QSqlDatabase must not be called from varying threads.
An instance must be limited to its thread.
In Mumble the Database class handles database access.
Up to now it contained static methods and always used the global default
database instance.
We instantiate the default database connection into the Global context.
It is mostly used from the main event loop, but also from a thread in
ServerHandler.
This is broken as per specification, and Qt 5.11 seems to finally enforce
that.
To resolve this issue, we promote Database to an instantiable class,
use the created Global context class instance from the event loop,
and a distinct Database instance (and connection) from the ServerHandler
instance (and thread).
|
|
|
|
|
|
|
|
Fixes mumble-voip/mumble#1913
|
|
|
|
|
|
|
|
|
|
|
|
are empty.
Implements patch #3289052 in a leaner way
|
|
|
|
|
|
Removed some useless casts to int and changed some variable
names to their unabbreviated form.
|
|
|
|
|
|
Backwards compatibility note: Older clients will not detect ACLs set by newer clients as passwords.
|
|
|
|
|
|
|
|
|
|
functionality
|
|
grants all rights by graying out the others if it is set.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|