* Pass MessageBoxManager instantiation around instead of relying on a singleton
* Mock MessageBoxManager for unit tests when needed, since they don't have a
QApplication which is required for creating QWidgets
* Remove GUI class, which didn't have a clear purpose
Style already has themeChanged, which was unused. GUI's themeReload just
dispatches to Style, which is already piped to GUI classes. Give the signal
to Style itself so that classes can connect to that, rather than relying on
GUI's singleton.
* Referring to groups generically as contacts is confusing.
* Friends are referred to as contacts in many places either as more
neutral wording, or to avoid using the keyword friend as a variable
name. Calling Contact Chat allows contact to be used for Friends.
* Make main.cpp's toxSave free functions into a ToxSave class so that it can be
given Settings on construction.
* Add void* to IPC callbacks so that classes can get back to themselves.
* Move free functions to the anonymous namespace
* Additionally move static free functions to the anonymous namespace
* Move functions that must be accessed externally to static class functions
Avoid shadowing variables:
* Rename variables to something better if possible
* If not, postfix shadowing arguments with _. Favour leaving member
variables without postfixes.
* Rename variables prefixed with _ to avoid library function collisions
* Avoid double underscore anywhere in names
* Make definition and declaration argument names match where seen
* Favour using class variable over argument variable, where equivalent
* Remove explicit this-> where equivalent
This allows leaf classes to update independently when the GUI has changed themes, without
their parent having to call updateTheme() manually.
Fix#5924Fix#5592
Blocked status will represent friends who are removed from Toxcore, but who still exist in UI and can be readded to Toxcore at a future time using their public key. Blocked friends are similar to offline friends, but have a different status icon and will be seperated in the friends list.
Move all static methods from ContentDialog to ContentDialogManger. Make
if singletone for the first time. Also move some methods to avoid
compile errors.
Original work by tox-user.
The default theme is now placed in a different path:
- C:\users\%username%\AppData\roaming\qtox\themes - for Windows
- ~/Library/Application Support/qtox/themes - for MacOS
- ~/.config/qtox/themes - for other Unix systems including GNU/Linux
Thanks to that it's no longer required to recompile the program to modify
the theme.
In addition to that the default theme is also included as a resource. If
the theme folder or some file inside it is missing, qTox will load it
from resource.
This displays the name of the currently used account in the window title
of detached chats. Also closes all open chats when switching back to one
window.