aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2020-02-25E2EE: Fix EncryptionManager initialization placeAlexey Andreyev
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
2020-02-22RoomMemberEvent: add isRejectedInvite(), isBan(), and isUnban()Karol Kosek
2020-02-10Add EventContent::replacementOf() helperRoland Pallai
2020-02-10TextContent: use MSC-1849 compatible `m.relates_to` fieldRoland Pallai
2020-02-10Edit (transmit): fix asterisk marking for dumb clientsRoland Pallai
The prepared body got overwritten due to missing return statement.
2020-02-10Edit (transmit): fix json struct of `m.new_content`Roland Pallai
2020-02-07Fix build on big-endian systemsAndres Salomon
On little-endian systems, this call to qToLittleEndian(hash) disappears completely. On big-endian systems, it turns into qbswap(hash), and causes a build error. qbswap() isn't defined for QByteArrays, because QByteArray isn't an array containing multi-byte elements. Since each element is a single byte, machine endianness isn't a factor. (If we really wanted to swap the bytes, we'd need to reverse every 4 bytes of the array.) This just drops the call to QToLittleEndian completely. The lines after it converts part of the hash to a QDataStream, which DOES have to worry about endianness, but that code is also specifically calling QDataStream::setByteOrder to specify little-endian.
2020-01-12Use parsed RoomPowerLevelsEvent in room upgradingBlack Hat
2020-01-01Fix linux buildBlack Hat
2020-01-01Fix linux buildBlack Hat
2020-01-01Add powerLevelForState()Black Hat
2020-01-01Mark methods as const.Black Hat
2019-12-30Simplify codeBlack Hat
2019-12-29Add missing fileBlack Hat
2019-12-29Merge branch 'master' of https://github.com/quotient-im/libQuotient into ↵Black Hat
bhat-powerlevel
2019-12-29Add RoomPowerLevelEvent typeBlack Hat
2019-12-28isEditing(): fix a bug in replacing eventsBlack Hat
2019-12-24RoomMemberEvent: introduce the reason field (MSC2367)Kitsune Ral
See https://github.com/matrix-org/matrix-doc/pull/2367. Closes #370.
2019-12-23ConnectionData::submit: when not queuing, still submit asynchronouslyKitsune Ral
Otherwise BaseJob::messageSent has every chance to be overlooked by clients who subscribe to it after calling callApi().
2019-12-23Connection::forgetRoom: slightly simplify codeKitsune Ral
2019-12-13Room: make downloaded file name building more robustKitsune Ral
Specifically, handle colons and long file names gracefully. Closes #366.
2019-12-13Room::postFile(): minor refactoringKitsune Ral
2019-12-12BaseJob::initiate(): fix nullptr dereferencingKitsune Ral
2019-12-12Room::downloadFile: minor cleanupKitsune Ral
2019-12-12BaseJob: prepare() -> initiate() + refactoring around itKitsune Ral
* BaseJob::initiate() now calls ConnectionData::submit() without relying on Connection to do that * ConnectionData::submit() is now the only site where a job enters Pending state * No more shortcuts to BaseJob::sendRequest(), even retries are sent through the ConnectionData submission queue * Additional validation in BaseJob::initiate() that the request data device is actually open (because QtNetwork API officially requires that, even if you can get away passing a closed QBuffer to it)
2019-12-12Connection::uploadFile/Content(): refactoring around QIODevice::open()Kitsune Ral
No more "The file is already open" log messages.
2019-12-12Move FileError definition from DownloadFileJob to BaseJobKitsune Ral
Will use it in BaseJob in a later commit.
2019-12-12Room::fileNameToDownload(): fix a typo in a check on WindowsKitsune Ral
As a result of the typo, the extension was never attached to returned file names if there was none originally.
2019-12-12RequestData: optimise fromData() and preopen the bufferKitsune Ral
It was just a coincidence that QBuffer allowed reading from it without being isReadable() at the moment of starting a job.
2019-12-11Merge branch 'kitsune-better-upgrade-ux'Kitsune Ral
2019-12-11BaseJob::StatusCode: offset first error from ErrorLevelKitsune Ral
Q_ENUM seems to resolve int to the first enum identifier with that value so NetworkError == ErrorLevel looks confusing in logs.
2019-12-11Pass action scope to Room::setTagsKitsune Ral
The tags can now be applied not only to the current room but also propagated to its predecessors and successors.
2019-12-09Room::creation() and Room::tombstone()Kitsune Ral
2019-12-09Room::predecessor() and Room::successor()Kitsune Ral
2019-12-09RoomEvent::timestamp() -> originTimestamp()Kitsune Ral
The previous name is still available but deprecated.
2019-12-09Code cleanupKitsune Ral
2019-12-09Room: more doc-commentsKitsune Ral
2019-12-09Initialise read marker if none is found in the whole timelineKitsune Ral
Closes #361.
2019-12-09Merge branch 'kitsune-look-further-for-redactions'Kitsune Ral
2019-12-08Merge pull request #365 from quotient-im/aa13q-msc1954-drop-prev-contentKitsune Ral
MSC1954: Remove prev_content from the essential keys list
2019-12-08Room::addNewMessageEvents: search the whole sync batch for events toKitsune Ral
redact It seems that sometimes redactions may precede the unredacted events within the same sync batch.
2019-12-08ConnectionData: stop the timer on destructionKitsune Ral
...to prevent from trying to send requests after closing the connection.
2019-12-08Remove extraneous qualificationKitsune Ral
2019-12-06MSC1954: Remove prev_content from the essential keys listAlexey Andreyev
Fixes #318
2019-11-30Fix room highlighting for names with hashtagAlexey Andreyev
Fixes #359
2019-11-19BaseJob: Don't send accessToken if not needed; send again on 401Kitsune Ral
The first part closes #358; the second part is a workaround for non-standard cases when endpoints without security by the spec turn out to be secured (in particular, the case of authenticating media servers).
2019-11-10CleanupKitsune Ral
2019-11-10makeRedacted: fix code formattingKitsune Ral
2019-11-02Compatibility with Qt 5.14Kitsune Ral
2019-11-01Omittable: Add direct-list-initialising operator=; documentKitsune Ral
See the change in connection.cpp for the example of usage. Also: removed static_asserts: the first one is provided by std::optional, and the second one is only relevant to edit().