aboutsummaryrefslogtreecommitdiff
path: root/lib/room.cpp
AgeCommit message (Collapse)Author
2019-03-26Room::canSwitchVersions(): return false on tombstoned roomsKitsune Ral
A softer take on #306.
2019-03-23Room::downloadFile(): Tighten URL validationsKitsune Ral
Check the URL before passing over to Connection::downloadFile(), not only the file name.
2019-03-14Fix read receipts and redactions on v3 roomsKitsune Ral
Previously slashes in eventIds (that come plenty in v3 due to base64 encoding) were not properly encoded - they are now.
2019-03-10Room::checkVersion(): be tolerant to already upgraded roomsKitsune Ral
2019-02-26Room::avatarObjectKitsune Ral
Closes #268.
2019-02-26Room: avoid dangling pointers, even if not dereferencedKitsune Ral
Closes #288; fixes one more case similar to #286. Also: disconnect file transfer signals correctly in Room::postFile.
2019-02-26Room::addNewMessageEvents: fix possible use of an invalid iteratorKitsune Ral
Closes #286.
2019-02-25Have a build-wide macro for compilers that don't handle init-lists rightKitsune Ral
WORKAROUND_EXTENDED_INITIALIZER_LIST -> BROKEN_INITIALIZER_LISTS is available from util.h now.
2019-02-25Room::postHtmlMessage: default message type to m.textKitsune Ral
postHtmlText becomes just a synonym for 2-arg postHtmlMessage (hopefully at least this doesn't confuse QML that is generally terrible at resolving overloads).
2019-02-25makeRedacted: update the list of preserved partsKitsune Ral
Closes #256.
2019-02-22Room::setAliases, Connection: roomByAlias, updateRoomAliasesKitsune Ral
2019-02-19Room::downloadFile: construct the temporary filename more carefullyKitsune Ral
Closes #279.
2019-02-18Room: fix building with MSVCKitsune Ral
2019-02-17Room: add isUnstable(); unstableVersion() -> stabilityUpdated()Kitsune Ral
2019-02-17Room: emit room, not id in upgraded(); add upgradeFailed()Kitsune Ral
2019-02-16Room::version(): Fallback an empty version to "1"Kitsune Ral
2019-02-16Room::canSwitchVersions()Kitsune Ral
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.