Age | Commit message (Collapse) | Author |
|
|
|
This is a usual situation when a membership type is undefined; and
the current code constructs _a lot_ of stub events by loading them from
empty JSON. So just silence those warnings for now.
|
|
This is to optimize a rather hot path creating stub events (for
member events in bigger rooms, in particular) when the event type is
known. Version 0.7 will have a completely different code based on
event content rather than event that will obviate stubs creation but
0.6.x can benefit from it.
|
|
|
|
...in one particular case, when trying to add a user to a room it's
already a member of.
|
|
Closes #412.
|
|
|
|
The first character inside the fragment should be /
|
|
|
|
May lead to new crashes due to nullptr returned from Connection::user()
on more utterly invalid content from the wire that the library still
doesn't properly invalidate. This has long been quite a good case for
exceptions, or another error-handling framework: Connection::user() can
return nullptr either when out of memory or when the id is invalid or
empty, and other places are likely to treat invalid ids in different
ways but probably just hope that memory exhaustion "never happens", or
try to handle it in a quite different way than an empty or invalid id.
Something to think of in 0.7.
|
|
[skip ci]
|
|
|
|
See https://github.com/matrix-org/matrix-doc/issues/2717
|
|
[skip ci]
|
|
|
|
|
|
...instead of a complicated explicit code converting from JSON
to varianthash to hash.
|
|
The new release upcoming.
|
|
As of 0.6.1, User::name() triggers fetching the user profile (whether
this is right is a separate question but that's the way it works with
the current library API) - displayname() should use it rather than
shortcut to d->defaultName to get results consistent with User::name().
|
|
This is a temporary workaround for
https://github.com/matrix-org/synapse/issues/8029 - note that
regenerating CS API code will lead to overwriting this. The proper fix
should be done in matrix-doc (see
https://github.com/matrix-org/matrix-doc/issues/2717).
|
|
Qt 5.15 deprecates bearer management.
|
|
Member renames upon profile changes don't come right away, it turns out;
so check User::nameChanged instead of Room::memberRenamed.
|
|
|
|
5849686e introduced a new way of storing user avatars and names -
unfortunately it didn't fully cover the case of the user's default
(profile) name and avatar. This commit fixes it; in 0.6.x branch,
the fix requires a const_cast<> hack since name() and avatarObject()
invocations are used as triggers to fetch the profile. 0.7 will have
User::fetchProfile() method instead.
|
|
Sync may bring past events in a few batches, it turns out, and quotest
used to choke on name changes from its own past executions.
|
|
The most frequent occurence of IncorrectResponse so far is a proxy/CDN
failure. This is not a grave error; there's a chance that the retry will
succeed. In the worst case the job will fail after 3 identical errors
(except SyncJob that will try to get through forever - but SyncJob
failures should still be indicated in the client's UI in some
non-intrusive way).
|
|
|
|
|
|
|
|
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 commit c69f100e 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 - this will be
fixed in 0.7 by introducing a special class for a user profile.
|
|
|
|
|
|
#quotient:matrix.org is a primary channel to talk to users and
developers, and events produced by changeName test come really noisy.
#test:matrix.org is a perfect place to test things out, OTOH.
|
|
|
|
|
|
|
|
|
|
User::updateName() usually operates on a specific room; setting an
object name from an arbitrary (whichever came last at any point in time)
room member event for a given user does not look like a good idea.
And having it in User::updateAvatar() seems to be a copy-paste fallout.
|
|
|
|
Users are always parented to their Connection; there's no need to store
a pointer to the connection on top of the one already stored by QObject.
|
|
Bridge postfixes stopped being a thing long ago; since then, bridged()
has nothing but an empty string, and rawName() coincides with name().
|
|
So that room avatar events could also be sent, not only received.
|
|
|
|
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.
|
|
Matrix URIs and resolving them
|
|
|
|
|
|
Closes #314.
|