Previously GroupInviteForm included several collections of components
which were supposed to use as a single object. Now they are replaced
with a class and all functionality related to this collections moved
there too. Also fix#3621
Fixes#1926 : When an IPC event was processed locally, if the window was closed before the core could start, the event handler would be forever stuck in the background waiting for the core to start. We fix this by substituting QApplication::quit() by a Nexus::quit() function and a Nexus::isRunning() function, which gives us a condition for exiting blocking processEvents() loops. We cannot simply use QApplication::quit(), because this function has no effect before the start of the event loop.
The problem was further exacerbated by the Tox URI event handler being (incorrectly) blocking. The IPC owner would block in this event handler, and the sender of the event would give up waiting and process the event itself a second time, potentially triggering the first bug. We fix the event handlers accordingly to be (mostly) non-blocking.
Also fixes a related deadlock between ~Core and ~Profile in the case of an early exit
This commit removes historykeeper and code only used by it.
BREAKING CHANGE:
qTox can't open old historykeeper chatlogs after this commit. Use
previous versions to migrate to the new database.
Steps to reproduce:
* Select some obviously larger font
* Restart qTox
* Type something (you will see it with the correct font)
* Erase it completely
* Type something again
* Observe the current font now is small (back to the default)
This is a bug in Qt having to do with manipulation with both the css style and QFont of QTextEdit control at the same time.
The solution is to convert QFont to CSS style and apply it this way.
Moved "header" under the scrollbar.
Renamed `Profile` and `User Profile` to `My profile`.
There is a regression with profile page header title no longer being
bold; according it Qt Creator it should be bold. No idea how to fix
that.
Thanks to @Diadlo for the code removing unnecessary header.
This causes a slight regression where own status can become quite huge
when user sets e.g. 120 newlines between first and last character of the
status message.
Given that this fixes a problem with incorrect (broken) formatting of
display of own status messages, the slight regression is insignificant.
There is also a Qt bug involved that causes formatting to be broken if
text contains "HTML" tags.
https://bugreports.qt.io/browse/QTBUG-57477
Used workaround requires using additional HTML to preserve newlines even
if HTML is a part of the status message.
Related to #935.
Revert needed, since otherwise there is no way to do automatic sorting
of includes.
Also reverted change to the docs, as leaving it would make incorrect
docs.
In case of conflicts, includes were sorted according to the coding
standards from #3839.
This reverts commit b4a9f04f92.
This reverts commit 5921122960.