* Reorder class data members and/or constructor initialisers to match,
reducing confusion about when members will be initialised.
* Remove (most) unused variables. Not removed: some global variables with
`TODO(sudden6)` on them for using them in the future. I don't know how
far into the future sudden6 wants to use them, so I left them there for
now.
* Distinguish different bootstrap nodes in the logs by index in the
bootstrap node list. Originally, we used to log the address/port of the
node we're bootstrapping to. This was removed out of privacy concerns
(even though the bootstrap nodes are public). This made the logs much
less useful when debugging why the client isn't connecting. Having
indices makes it easier to see that different nodes are being selected,
and makes it possible to determine which node was selected.
* Explicitly cast unused results of Tox API functions to `void` when all
we want is to know whether the function succeeds or not.
* Don't try to `#include <unistd.h>` on Windows. It does not exist on
MSVC.
* Remove extra `;` after function definitions.
* Remove reference indirection of QJsonValueRef, since a copy of that ref
(small pointer-like object) has to be made anyway when iterating over
QJsonArrays.
* Make some file-scope global state `static`.
* Use `nullptr` instead of `NULL`.
* Add `#if DESKTOP_NOTIFICATIONS` around the code that implements desktop
notifications, so it becomes a bit easier to compile everything with a
single compiler command - useful for manually running static analysers.
* Fix an error on MSVC where `disconnect` is looked up to be a non-static
member function and the `this` capture is missing.
* Consistently use `struct` and `class` tags for types.
* Use references in ranged-for where it reduces copies.
* Move private static data members out of the Style class and into
file-local scope. There is no need for them to be in the class. Also
marked them `const` where possible.
* Removed unused lambda capture.
* Ensure qTox can compile under NDEBUG with `-Wunused-variable` by
inlining the unused variable into the `assert` that was its only
target.
* Minor reformatting in core_test.cpp.
NSCameraUsageDescription and NSMicrophoneUsageDescription are needed on
newer macOS versions (10.14+) to get access to camera/microphone. This
text is shown to the user when they need to press the "allow" button.
Switch from `pkg_search_module` to `pkg_check_modules` to find .pc and
evaluate .pc files of dependencies. Now, in case of any errors, a clear
message is issued about what is wrong, making it obvious what to do.
As of c-toxcore-0.2.11, my system's toxcore.pc file contains this line:
```
Requires.private: libsodium opus vpx
```
Previously, with opus missing, cmake/Dependencies.cmake through an error
about toxcore not being found, but never actually told why (also it was
misleading, because opus was missing, not toxcore).
Before:
```
<...>
-- Checking for one of the modules 'toxcore'
-- TOXCORE not found
-- Checking for one of the modules 'toxav'
-- TOXAV not found
<...>
```
After:
```
<...>
-- Checking for module 'toxcore'
-- Package 'opus', required by 'toxcore', not found
-- TOXCORE not found
-- Checking for module 'toxav'
-- No package 'toxav' found
-- TOXAV not found
<...>
```
Alexander Ritter (1):
feat(l10n): update German translation from Weblate
Allan Nordhøy (2):
feat(l10n): update Norwegian Bokmål translation from Weblate
feat(l10n): update Norwegian Bokmål translation from Weblate
Andrey (1):
feat(l10n): update Russian translation from Weblate
Branko Kovačević (1):
feat(l10n): update Serbian (latin) translation from Weblate
Dan Baeza (4):
feat(l10n): update Portuguese (Brazil) translation from Weblate
feat(l10n): update Italian translation from Weblate
feat(l10n): update Spanish translation from Weblate
feat(l10n): update French translation from Weblate
Deleted User (1):
feat(l10n): update German translation from Weblate
Kristjan Räts (1):
feat(l10n): update Estonian translation from Weblate
Milo Ivir (1):
feat(l10n): update Croatian translation from Weblate
Moo (1):
feat(l10n): update Lithuanian translation from Weblate
Oguz Ersen (1):
feat(l10n): update Turkish translation from Weblate
Vladimir Studinsky (1):
feat(l10n): update German translation from Weblate
Xoronic (5):
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
Zarko Gjurov (1):
feat(l10n): update Macedonian translation from Weblate
anonymous (5):
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
kak mi (1):
feat(l10n): update Chinese (Simplified) translation from Weblate
zaefarani (1):
feat(l10n): update Persian translation from Weblate
Åke Engelbrektson (1):
feat(l10n): update Swedish translation from Weblate
Don't add Wzero-as-null-pointer-constant by default, since on older Qt
versions that we stil support and that our CI runs agains, Qt API themselves
cause warnings which lead to build errors all over the place.
Fix#6008
Enable warnings for both. Favour casting to signed rather than casting to
unsigend for comparisons. Per isocpp's core guidelines ES.102, signed
arithmetic gives more expected results. If we need one extra bit of range,
using longer signed types achives that.
Fix#6010Fix#6012
Message caching is handled by SessionChatLog in memory even when history is
disabled. ChatLog doesn't need to worry about how the messages its rendering
are being stored. Dynamic loading up and down in chatlog is sitll functional.
Checking if history pointer is valid is not sufficient, the setting must also
be checked. This caused asserts in history when history was disabled in
settings.
Alexander Ritter (1):
feat(l10n): update German translation from Weblate
Allan Nordhøy (2):
feat(l10n): update Norwegian Bokmål translation from Weblate
feat(l10n): update Norwegian Bokmål translation from Weblate
Andrey (1):
feat(l10n): update Russian translation from Weblate
Branko Kovačević (1):
feat(l10n): update Serbian (latin) translation from Weblate
Dan Baeza (4):
feat(l10n): update Portuguese (Brazil) translation from Weblate
feat(l10n): update Italian translation from Weblate
feat(l10n): update Spanish translation from Weblate
feat(l10n): update French translation from Weblate
Deleted User (1):
feat(l10n): update German translation from Weblate
Kristjan Räts (1):
feat(l10n): update Estonian translation from Weblate
Milo Ivir (1):
feat(l10n): update Croatian translation from Weblate
Moo (1):
feat(l10n): update Lithuanian translation from Weblate
Oguz Ersen (1):
feat(l10n): update Turkish translation from Weblate
Vladimir Studinsky (1):
feat(l10n): update German translation from Weblate
Xoronic (5):
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
Zarko Gjurov (1):
feat(l10n): update Macedonian translation from Weblate
anonymous (5):
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
feat(l10n): update Dutch translation from Weblate
kak mi (1):
feat(l10n): update Chinese (Simplified) translation from Weblate
zaefarani (1):
feat(l10n): update Persian translation from Weblate
Åke Engelbrektson (1):
feat(l10n): update Swedish translation from Weblate
Makes the CoreAV thread own all ToxCalls in order to prevent signals
from being emitted via a Direct connection from Audio to CoreAV.
(cherry picked from commit 6b468e41fa)
In other applications chatrooms allow you to idle in a call and have
people hop in and out as desired. If a user is the only one presently
online in a group but knows someone will be joining shortly they should
be able to join the call ahead of time.
(cherry picked from commit 46d57c6864)
receiver QObject is used by Qt to automatically deregister the connection when
the receiver is destroyed. Forward it on to Qt's connect.
(cherry picked from commit 24e4ec3751)
Qt doesn't support QObject multiple inheritance, so use our existing interface
macros to declare signals in the interface without QObject, and implement them
in child classes.
(cherry picked from commit 82a4f1b412)
connection is normally returned from Qt's connect, and the caller may want to
track the connection to manually disconnect it.
(cherry picked from commit 41b2b35ce3)
c-toxcore calls the groupCallCallback from it's main thread instead of
the ToxAV thread as expected, this was triggering an assertion.
Aditionally the destructors of Core and CoreAV were fixed, because they
now either crashed or deadlocked qTox when it was closed while a group
call was still running.
(cherry picked from commit 141cbf8870)
This actually fixes two problems:
1) CoreAV and Audio thread both locked the callsLock and audioLock in
different orders, resulting in a deadlock of both threads. This fixed by
using a ReadWriteLock in the CoreAV thread.
2) Multiple functions were emitting signals while holding a lock. This
is unsafe, because the connected slot may acquire any other lock. This
is fixed by releasing the locks before emitting signals.
(cherry picked from commit 4b9e4a571d)