Age | Commit message (Collapse) | Author |
|
Merge to latest commit.
|
|
This is to allow connecting to before-destruction of one specific room, rather than any room under a connection (for which Connection::aboutToDeleteRoom() still exists).
|
|
It's borrowed from Qt; namespacing basically forced client writers to put "using namespace QMatrixClient" before using qAsConst.
|
|
Doxygen/Qt style is preferred from now on.
|
|
|
|
|
|
The Spec wasn't entirely consistent on this until recently but floats actually are used in the wild, rather than strings.
|
|
|
|
|
|
Closes #240.
|
|
|
|
|
|
Breaking changes:
* guest_can_join is no more a thing - neither in Connection::createRoom, nor even in CreateRoomJob (it turned out that Synapse didn't really process this flag);
* LoginJob has changed its list of arguments. If you use Connection to do logins (and you really should), you shouldn't be affected.
* GetPublicRoomsJob now returns PublicRoomsResponse instead of providing all the response parts within the job
Watch other changes in the diff.
|
|
Also: general cleanup.
|
|
Settings::get() and SettingsGroup::get() allow concise and efficient
type-specific interface to value(); instead of wrapping your
defaultValue into a QVariant, just pass it to get() instead of value().
|
|
|
|
|
|
|
|
Wasn't used in the code in the end.
|
|
|
|
|
|
Speeds up lookup of user(s) in a direct chat room.
Also: "The other one's" avatar is used to set the avatar of direct
chats only, not any room with 2 participants.
|
|
Deletion of Invite rooms was a clear bug; as for left rooms, it makes sense to keep
them in direct chat maps because they may be re-joined later on.
|
|
|
|
Closes #230.
|
|
|
|
Slots are Q_INVOKABLE by definition.
|
|
|
|
|
|
Not that it felt right but Riot does it and so should we. Closes #220.
|
|
Redaction events are now processed before, not after/along with normal
events. This complicates logistics a bit but makes sure to-be-redacted
events get redacted even before the client is notified about new
arrivals. Also, redaction events are unconditionally out of the timeline
for the moment (the non-starter KEEP_REDACTIONS_IN_TIMELINE macro is
gone). This reinstates #196 for now, which will be addressed separately.
|
|
|
|
Closes #227.
|
|
|
|
|
|
|
|
|
|
* TimelineItem and a newly introduced PendingEventItem are now
inheriting from the common EventItemBase class
* PendingEventItem has its own status and annotation, serving to track
transition of the item through pending states
|
|
...and therefore deprecated for use in clients _yet_.
|
|
|
|
|
|
It's present on the vast minority of events so better be embedded into
JSON instead.
|
|
It's not always a JSON object; it's either a SetTweakAction object or a string. (Unfortunately, QVariant isn't a template type and there's no easy way to put Q_DECLARE_METATYPE(SetTweakAction) in a Mustache template, so adding one is left as an exercise to the user now.)
|
|
Most of the actual change was in the API definition files (thanks to @anoadragon453), plus a converter from a QJsonObject map to the URL query string.
|
|
See https://github.com/matrix-org/matrix-doc/pull/1457 for the background.
|
|
This is at least some (actually, not even that bad) identification of a message. Ideally it would probably be to return some handler that would allow to track the end-to-end status of the event - from getting sent to landing in the timeline. Right now the experience is crippled - transactionId always exists but only works for message events and Room has no way to give the event status by transactionId. pendingEvent* signals are somewhat helping, though.
|
|
This needed to split the container with the freshly arrived events into parts that don't have local echo and echo'ed events, and add them to the timeline emitting two different pairs of signals. Instead of being removed, pending events are now merged (effectively they are removed from unsyncedEvents container anyway but models can represent this as an echo event being "transformed" into a full-fledged one on a timeline).
|
|
A spin on the standard algorithm.
|
|
The Room class has gained a new internal container, unsyncedEvents, storing
locally-created Event objects that are about to be sent or are sent but not yet synced.
These objects are supposed to be complete enough to be displayed by clients
in a usual way; access to them is provided by Room::pendingEvents() accessor.
A set of pendingEvent* signals has been added to notify clients about changes
in this container (adding, removal, status update). Yet unsent events don't
have Event::id() at all; sent but yet unsynced ones have Event::id() but have
almost nothing else except the content for now (probably a sender and an
(at least local) timestamp are worth adding).
Also: SendEventJob is removed in favor of GTAD-generated SendMessageJob.
|
|
Time and again I need one-off slots that disconnect once they are done. The code has been inside Connection implementation for quite some time, now it's put to the interface for usage in other places (notably qmc-example).
|