aboutsummaryrefslogtreecommitdiff
path: root/lib/room.cpp
AgeCommit message (Collapse)Author
2020-03-26Support for receiving m.reaction eventsKitsune Ral
Continuation of the #341 backport.
2020-03-25Support of MSC1849 message editingKitsune Ral
This is a backport of #341, as fixed by #373 and #376.
2020-03-25Room: make downloaded file name building more robustKitsune Ral
Backport of a fix for #366.
2020-03-25Redaction: update essential keys listKitsune Ral
No more special: - prev_content (MSC1954, fixes #318) - aliases (follow up on MSC2432)
2020-03-25Initialise read marker if none is found in the whole timelineKitsune Ral
Backport of a fix to #361.
2020-03-25Update the cache for sure if unread counters were changedKitsune Ral
Backport of #345.
2020-03-25Support for server notices rooms (MSC1452)Kitsune Ral
Fixes #326.
2020-03-25Fix missing alias updates; make Room aliases accessors work (using MSC2432)Kitsune Ral
Backport of #383 to 0.5.x branch. Fixes #301.
2019-04-06Room::processStateEvent: be more careful with signals handling at user renamesKitsune Ral
2019-04-04Clean up on clang-tidy/clazy analysisKitsune Ral
2019-04-03Room::postFile: initiate uploading the file even before adding a pending eventKitsune Ral
This is to make sure a pending event with file transfer already placed.
2019-03-31Room: track invited users; polish the room naming algorithmKitsune Ral
It's no more entirely along the spec lines but gives better results with or without lazy-loading, across a wide range of cases. Closes #310.
2019-03-31Room::updateData(): recalculate room name only when state changes occurKitsune Ral
2019-03-31Room::refreshDisplayName() - for debugging purposes onlyKitsune Ral
Clients should not need to call this method explicitly.
2019-03-30Room::processStateEvent, User: take the previous membership state from ↵Kitsune Ral
oldStateEvent memberJoinState() just happens to return the not-yet-updated state, making its use around state changes very sensitive to moving things around. The event's own prevContent is unsigned, therefore untrusted.
2019-03-29Room::processRedaction(): avoid accidental creation of entries inKitsune Ral
currentState; cleanup
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.