* Simplifies reasoning about who owns what functionality between
GenericChatForm and ChatLog. GenericChatForm is now just a layout
class and ChatLog handles all interactions with retrieving and
displaying messages from the model
* Reasoning for work is described in more detail in #6223
Add old glib to work with our old gnutls on redhat based systems.
Generally we would want to avoid providing our old libs that the distro's newer
libs that we use depend on, which would include harfbuzz in this case for glib,
but including harfbuzz breaks libfreetype on newer distros like arch.
Other libs that we use from the system with dependencies that we provide include
are libfreetype, libXdmcp, and libICE, but that is unchanged here.
Fix#6339
Define at least one virtual method in polymorphic class cpp files to
improve link efficiency. Do so by defining a defaulted destructor or
another overridden virtual method in the class cpp file.
Also add explicitly defaulted copy/move constructors and assignment
operators to follow the rule of five and to avoid compiler suppression
of these functions due to the addition of a user-provided destructor.
Where neccessary, create new cpp files and add them to CMakeLists and
Testing.cmake. Set the -Wweak-vtables by default when compiling with
clang to issue warnings for new classes that do not comply with this
pattern.
See http://llvm.org/docs/CodingStandards.html#provide-a-virtual-method-anchor-for-classes-in-headers.
Fixes#6036.
Reuse code from the file transfer widget to provide an image preview
on paste/grab. This prevents users from accidentally sending images they
did not mean to when their clipboard is not in the state they thought it
was.
Implementation exposes the genericchatlog vbox to the child classes and
chatform injects the imagepreview into it.
Use posix versions of mingw toolchains, which say:
> This package contains the C++ compiler, supporting cross-compiling to
64-bit MinGW-w64 targets, using the POSIX threading model.
Fix build failure saying that std::mutex was not declared
Previously, the four matrix Windows jobs would run in parallel and each
build deps, which is redundant since both debug and release qTox use the
same deps.
Now, the win-deps job builds only the needed two versions of deps, and
the four windows builds wait for it to complete before running in
parallel.
So that each commit in repo is tested, including merge commits that
aren't present in PRs. Also prepares for running releases only on push
but not on PRs.
Workflows have a global runs-on, so commit format check needs to be
split out from the shared PR and push workflow to since checking all
commit messages on pushes always fails due to very old commits not
following the proper format.