Age | Commit message (Collapse) | Author |
|
|
|
|
|
placeholder
Otherwise placeholder objects are confused with normal room JSON objects
when loading from the cache. Closes #257 (again).
|
|
|
|
You can't assign a QStringBuilder to auto.
|
|
Closes #257.
|
|
This allows to batch updates into signals being emitted only once per
sync. Also supercedes emitNamesChanged flag used in a few places.
|
|
|
|
|
|
|
|
SyncData now resides in its own pair of files and is capable to load either from file or from JSON. There is also (yet untested) capability to load rooms from files if a file name stands is the value for a given room id. This allows to store the master cache file separately from cache files for each room, massively easing the problem of bulky accounts that can overflow the poor capacity of Qt's JSON engine.
|
|
These two are intermingled in Room::addHistoricalMessageEvents because
processing empty events found in a historical batch is no different from
discovering (not lazy-loaded) members.
|
|
This was one more cause of #257 - the case when a redaction on a state
event arrives in the same batch as the redacted event.
|
|
|
|
|
|
A new recommended (and localisable) way of getting a piece of raw
response to display next to error messages as "details".
BaseJob::rawData() returns exactly the trimmed piece of data, no
"truncated" suffix there anymore.
|
|
|
|
Closes #258.
|
|
Brings event id of the state event that was in effect before this one arrived. This key is not specced but it's used in the wild since forever.
|
|
|
|
Also: use Matrix type instead of internal type id in StateEventKey
(Because internal type id maps to the library type system which will not
discern between Unknown events and therefore will mix together events of
different types in Room::Private::baseState/currentState. The Room code
is updated accordingly (bonus: more asserts there).)
Closes #255.
|
|
...that creates an "empty" event, i.e. an event with content initialised by a default constructor (not all content types support this but those for simple events do).
|
|
Also: make moveEventsToTimeline() always put historical events from
position -1 rather than 0 so that Private::baseState could always
correspond to the before-0 position.
|
|
- registerEventType(): comment the cryptic _ variable
- Room::postEvent: document the return value
- Room::Private: upgrade comments to doc-comments - even though in Private, they still are helpful to show hints in IDEs.
- General cleanup
|
|
|
|
Synced events always have their event ids, so checking those for event id renders most of the function useless (and returns an incorrect result). Closes #248.
|
|
document it
|
|
|
|
Closes #194.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nameForRoom() is O(n) in this context (n - number of names of a given
user).
|
|
Closes #127.
|
|
|
|
No-order is already modelled with the other overload, and Omittable<>
breaks interfacing with QML.
|
|
|
|
|
|
This turns off the legacy EventType namespace with event type aliases
(EventType::RoomMessageEvent etc.). To still use it, pass -
DENABLE_EVENTTYPE_ALIAS to the compiler.
|
|
Call events no more store deserialised values; instead they deserialise
values on the fly, same as all other events. They are no more treated as
state events (The Spec doesn't define them as state events in the first
place). A common base class, CallEventBase, is introduced that defines
data pieces common to all call events (call id and version).
|
|
Closes #249.
|
|
|
|
Instead of overwriting the entire set of tags even on single-tag
operations, SetRoomTagJob and DeleteRoomTagJob are used now.
(Room::setTags() still uses SetRoomAccountDataJob).
|
|
|
|
WIP: Add avatar caching.
|
|
Numerous changes in CS (and now also AS) API, including compatibility-breaking ones - see the diff for details.
|
|
This commit consists of two parts: upgrading the API infrastructure and trivial but sweeping update to the generated files.
1. The API infrastructure (converters.h, *.mustache and some other non-generated files) now can deal with top-level JSON arrays and response inlining; better supports property maps; and gets some formatting fixes in generated code.
2. Generated files now use QJsonValue instead of QJsonObject as a default type
to (un)marshall Matrix API data structures, to match the change in the infrastructure above
This commit is still using the old Matrix API definitions, before CS API 0.4.0. Getting to CS API 0.4.0 will come next.
|