Remove the deprecated slots declaratiosn from the storage APIs. This
avoids problems with the now non-copyable SyncableObject with ancient
versions of Qt, where the MOC generated code for slots that required
arguments to be copyable.
QObjects are non-copyable for good reasons. SyncableObject, although
deriving from QObject, was made sort-of copyable by adding custom copy
ctor and copy assignment operator that did not make a full copy of the
underlying QObject, but just copied (most) properties. Several classes
deriving from SyncableObject then implemented their own versions of
those special member functions on top of that. This was not only
rather unexpected and intransparent behavior due to the incomplete
copy functionality, but also a most fragile hack since one had to
remember to update those functions when adding or modifying
properties.
In addition, newer compilers apply a somewhat stricter interpretation
of the C++ standard, basically enforcing the Rule of Three by omitting
implicit generation of copy ctor and/or copy assignment operating
in case certain user-defined special member functions exist. In
particular, Clang 10 started to emit several warnings (and we already
worked around a similar warning from GCC 9+ in cc21148).
Instead of adding more workarounds further obfuscating matters, remove
the relevant special member functions altogether and thus make
SyncableObject and its derivatives non-copyable as they should be.
Modify affected code to cope with this cleanly, and without abusing
unexpected behavior.
Rename "capNegotiationInProgress()" to "capsPendingNegotiation()"
to better clarify the meaning of the function. This checks if any
capabilities are queued for an ongoing negotiation; it does not
represent whether or not "CAP LS" has been sent.
Fix capability negotiation messages for manually running "/CAP LS",
and for when the server provides capabilities but Quassel does not
support any of them.
Before, running "/CAP LS" after negotiation would erroneously print
"* No capabilities available"
Now, running "/CAP LS" provides a summary of the current situation,
"* No additional capabilities are supported (found: a-aa, b-bb, c-cc;
currently enabled: a-aa, b-bb)"
b134e77...
by
Janne Koschinski <email address hidden>
Sync last message id per buffer
7168c6a...
by
Janne Koschinski <email address hidden>
Fix buffersyncer state when merging buffers
7125305...
by
Janne Mareike Koschinski <email address hidden>
Implement support for the HAProxy proxy protocol
926e41c...
by
Janne Koschinski <email address hidden>
Minor cleanup of metrics server
- Remove unused raw login metric
- We won't ever have more than 4 billion sessions at a time per user