Age | Commit message (Collapse) | Author |
|
|
|
|
|
Also: use a structured binding for better code readability.
(cherry picked from commit 66972c81d018231f08f3767feda4b41ae5e1b8e0)
|
|
(cherry picked from commit 0a2acd750a4155969092be674ed3dd9a71b2354f)
|
|
The change in 39830496 led to prev_content becoming a fallback not only
for displaying user names but also for storing them in the internal
member map, which is really not what was intended.
A lot of debug logging has been added - this will be moved to a new
logging category before merging.
|
|
* QT_NO_URL_CAST_FROM_STRING makes it clearer where QUrls are created
from QStrings (which incurs a parsing cost).
* QT_STRICT_ITERATORS helps detecting where begin()/end() is used
instead of cbegin()/cend(). KDE developers have verified that
the generated assembly code is identical.
|
|
Changes in e81117fb exposed a flaw in EncryptionEvent causing assertion
failure when this event is default-initialised (i.e. no encryption).
|
|
In particular: removed unnecessary #includes, deprecated and no more
used constructs, replaced stored members with dynamic generation
from JSON (TypingEvent and, especially promising for performance,
ReceiptEvent)
|
|
|
|
|
|
|
|
|
|
MemberEventContent: displayname and avatarUrl are now Omittables;
CS API doesn't guarantee their presence (see also
https://github.com/matrix-org/matrix-doc/issues/1375) but Quotient
used to assume they are always there, causing #412.
RoomMemberEvent: displayname() -> newDisplayName() and
avatarUrl() -> newAvatarUrl(), to emphasise the actual semantics (and
also the changed interface). The old signatures still work but are
deprecated.
Instead of roomMembername() (with weird camel-casing), three new
methods in addition to safeMemberName() are introduced to Room:
- memberName() - produces the "best known" display name for a
given member; User::name() uses it to avoid the pitfall of #412.
- disambiguatedMemberName() - this is what roomMembername() used to be;
not recommended for direct use when UI is concerned.
- safeMemberName() - remains as is, with the fix to the documentation
that used to mislead that the function returns HTML-escaped content
(it didn't, and doesn't).
- htmlSafeMemberName() - does what safeMemberName() claimed to do.
Respectively, memberNames() is deprecated in favor of safeMemberNames()
and htmlSafeMemberNames(). The corresponding Q_PROPERTY uses
safeMemberNames() now.
Similar to memberName(), Room has got memberAvatarUrl() to spare
User class from diving into Room state to find the member avatar URL.
Closes #412.
|
|
can be applied.
|
|
|
|
|
|
The current mechanism relied on a complicated and fragile machinery
around setNameForRoom() and setAvatarForRoom() that maintained the
"most used" entity for a given user along with "other" ones. Given that
per-room avatars are pretty rare in Matrix, it's also been inefficient
as kitsune-benchmark-set_ForRoom branch shows. The new mechanism stores
the "default" (as per user profile) name and avatar and maintains
a singleton map of avatar objects across all users. Per-user profile
only (normally) exists for the local user so there's yet another
inefficiency that will be fixed further down the road by introducing
a separate user profile class.
|
|
|
|
Sending them in the foreground causes Quaternion to throw scary
messages when read receipts don't go through while that's actually
not a big deal. Also, network traffic deprioritisation.
|
|
Edits are (normally) applied to some other event up the timeline,
therefore not displayed. Having [1] in unread counts while seeing
nothing in the timeline is quite confusing.
|
|
...meaning - errors from it should not throw up at a user, who has no
clue (they still should go to logs for investigation).
|
|
|
|
Closes #406.
|
|
operator+() is no more wanted with iterators on associative containers.
|
|
|
|
|
|
Pulled from Quaternion code.
|
|
|
|
When a message is redacted it has no sender. If it happens to be
in the bulkhead, Quotient tries to promote a read marker over it and
fails on being unable to resolve the author.
|
|
The method grew large and a bit unwieldy over the years.
|
|
Fixes #394.
|
|
fixing msc2432
|
|
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
|
|
|
|
|
|
|
|
|
|
* Make handling of edited messages MSC1849 compatible
Server side aggregation replaces `content` with `new_content` in
edited messages. The same must be done at client side on
incremental updates to keep timeline consistent.
As server side aggregations is in use by default from Synapse 1.2.0
this patch fixes a real issue.
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
device_one_time_keys_count
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
|
|
|
|
Specifically, handle colons and long file names gracefully. Closes #366.
|
|
|
|
|
|
As a result of the typo, the extension was never attached to returned
file names if there was none originally.
|
|
The tags can now be applied not only to the current room but also
propagated to its predecessors and successors.
|