Fix#3124Fix#3004
Instead of loading a set 7 days of history. Better performance when there are lots of messages, and better context when friends haven't talked in over a week.
Removed historyBaselineDate, introduced in deb8440c6a to fix duplicate messages, but duplicate messages were very likely fixed by https://github.com/qTox/qTox/pull/4607.
Also refactored history loading.
Also improve usefulness of volume bar by including gain, clipping, and activation threshold. Remove magic numbers. Clear volumue display when mic is disabled.
Fix#4893
Since real offline message reliability issue was fixed in PR #4607, now removing all the workarounds that had been added. Offline messages are now sent as soon as we see our friend come online, and at no other time. Fixes 2 minute wait time before attempting to send if message is entered while you or friend is offline, removes 2 minute constant retry timer, removes 250ms delay between seeing friend come online and sending offline messages.
TriKriSta (12):
feat: add a button to search
feat: add form for search
feat: add text search
feat: edit load history for search
feat: remove search button and add line in context menu
feat: add search in text in group chats
feat: optimise search in history
feat: add hot keys for search
style: change code in searchInText
fix: add search symbol ' in history
refactor: rename hideButton to searchHideButton
refactor: add/delete checks in search code
Fixed after broken in https://github.com/qTox/qTox/pull/4940. Single-character UTF-8 emoji still work without whitespace on either side, but multi-character emoticon patterns like 😄 or :) do require surrounding whitespace, to avoid matching punctuation or HTML tags.
Before, when multi-length emoji were next to any other character, they would not be transformed into images. With this change, emoji are replaced with images no matter where they are in the string. Parsing is now done by checking to see if two-character blocks are valid as a single UTF-32 character, or if they are truly two distinct characters. Because we no longer need white space before emoji, I also removed our addition of spaces on either side of an emoji when a user sends them.