aboutsummaryrefslogtreecommitdiff
path: root/lib/room.cpp
AgeCommit message (Collapse)Author
2019-02-16Room::checkVersion(): check power levelsKitsune Ral
This is a flimsy implementation without proper RoomPowerLevelEvent definition, just to enable upgrades without causing noise to each and every user of a room on an unstable version.
2019-02-16Room::switchVersion()Kitsune Ral
Closes #236.
2019-02-15Use Changes enum properlyKitsune Ral
Don't use distinct items for each type of event; only for repeated/ combinable ones.
2019-02-15Room::checkVersion() and Room::unstableVersion()Kitsune Ral
Initial (sans power levels checking) implementation of the check that room should be upgraded. Closes most of #236.
2019-02-15Room::upgraded()Kitsune Ral
A signal emitted when the room receives a tombstone event from the server.
2019-02-15Disallow sending events to rooms that have been upgradedKitsune Ral
This concludes the mandatory part of #235.
2019-02-15Room: version(), predecessorId(), successorId()Kitsune Ral
Use RoomCreateEvent and RoomTombstoneEvent in the backend, covering most of #235.
2019-02-15Add a FIXME upon the recent failure under ValgrindKitsune Ral
2019-02-15Room::baseStateLoadedKitsune Ral
Mirroring Connection::loadedRoomState but for each single room (will be used as a NOTIFY signal for one-time-set events).
2019-01-13Connection: fix/workaround glitches on joining/leavingKitsune Ral
Closes #273, in particular.
2019-01-13Room::Room: initialise display nameKitsune Ral
So that the room has at least some display name before any events come to it.
2019-01-13Fix Omittables accidentally becoming non-omitted when compared with ↵Kitsune Ral
non-Omittable values
2019-01-05Room: findPendingEvent; fixes for postFile()Kitsune Ral
2019-01-05Support file events in Room::retryMessage/discardMessageKitsune Ral
2019-01-05Room::postFile() and supplementary things in Room::PrivateKitsune Ral
2019-01-05Room::fileSourceKitsune Ral
Also: const'ified other methods related to file urls.
2019-01-05FileTransferInfo: new properties: isUpload and startedKitsune Ral
Also: use constructors instead of list-based initialisation in FileTransferPrivateInfo to enable a case of "invalid/empty" FileTransferPrivateInfo with status == None.
2018-12-16Room: messageSent(), better pendingEventAboutToAdd(), more doc-commentsKitsune Ral
2018-12-16Room::getAllMembers: revert off-by-one "bugfix"Kitsune Ral
It actually introduces an off-by-one error; the original code was correct. #qmatrixclient:matrix.org is used instead of #test:matrix.org to check lazy-loading (see https://github.com/matrix-org/synapse/issues/4300)
2018-12-13Room::getAllMembers: fix off-by-one errorKitsune Ral
2018-12-12Room::allMembersLoaded(); more doc-commentsKitsune Ral
2018-12-11Make Room::setDisplayed() trigger loading all membersKitsune Ral
Closes #253.
2018-12-10Room::getPreviousContent: use early returnKitsune Ral
...instead of the entire function body wrapped in an if block.
2018-12-09Room: defer memberListChanged(); track room summary changesKitsune Ral
This concludes beta-version of lazy-loading support in libQMatrixClient (#253).
2018-12-09Room: track more changes; fix cache smashing upon restartKitsune Ral
Commit fd52459 introduced a regression rendering the cache unusable after a client restart (an empty state overwrites whatever state was in the cache). This commit contains the fix, along with more room change tracking.
2018-12-09MSC 688: MSC-compliant RoomSummary; update Room::calculateDisplayname()Kitsune Ral
The members of the summary can be omitted in the payload; this change fixes calculation of the roomname from hero names passed in room summary. Also: RoomSummary can be dumped to QDebug now.
2018-12-08Room summariesKitsune Ral
2018-11-23Room::setLastReadEvent: save room state when updating own read markerKitsune Ral
2018-11-23Room: track more ChangesKitsune Ral
2018-11-23Room/Connection: don't save the just loaded room cacheKitsune Ral
2018-11-22Save state cache per-roomKitsune Ral
Closes #257.
2018-11-22Room: Change enum, Changes flag set, and changed() signalKitsune Ral
This allows to batch updates into signals being emitted only once per sync. Also supercedes emitNamesChanged flag used in a few places.
2018-11-20Make SyncData more self-contained and prepare for cache splittingKitsune Ral
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.
2018-11-19Don't cache empty events; prepare for lazy-loadingKitsune Ral
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.
2018-11-19Room: process new state events after applying redactionsKitsune Ral
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.
2018-11-19Room: expose eventsHistoryJob as a Q_PROPERTYKitsune Ral
2018-11-19Room: profile addHistoricalMessageEvents (+cleanup)Kitsune Ral
2018-11-17Room: cleanupKitsune Ral
2018-11-17Room::processStateEvent: process banning correctlyKitsune Ral
Closes #258.
2018-11-14Room: fix incorrect handling of state event redactionsKitsune Ral
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.
2018-11-14Room: historyEdge(), syncEdge, Private::timelineBase()Kitsune Ral
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.
2018-11-14Improvements in commentsKitsune Ral
- 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
2018-11-14Room: ensure proper error signalling on event sending failuresKitsune Ral
2018-11-05isEchoEvent: check the pending event for ids, not the synced oneKitsune Ral
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.
2018-11-04Profiler logging fixes and improvementsKitsune Ral
2018-11-04Room: store state events in a unified wayKitsune Ral
Closes #194.
2018-10-26Use tr() for pluralsKitsune Ral
2018-10-12Room::addTag: use float instead of Omittable<float>Kitsune Ral
No-order is already modelled with the other overload, and Omittable<> breaks interfacing with QML.
2018-10-05Room: fix a blunder leading to accessing data after moveKitsune Ral
2018-10-04Modernise and fix code dealing with call eventsKitsune Ral
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).