aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
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().
2019-11-01Reinstate Omittable<>::omitted (deprecated)Kitsune Ral
To ease on back-compatibility.
2019-11-01Omittable: get rid of value()Kitsune Ral
Xcode 10 doesn't have it, and value() is not quite fitting mostly-exceptionless Quotient anyway.
2019-11-01Derive Omittable<> from std::optional<>Kitsune Ral
That breaks API all over the place but: 1. The fixes are trivial. 2. More of std:: is used instead of home-baking the same stuff.
2019-10-21Connection: record sync timeout; suspend sync before logoutKitsune Ral
This is mostly internal but clients may see fewer spurious sync failures upon logging out.
2019-10-21Connection: make syncLoop() reentrantKitsune Ral
...in the sense that you can call it twice and expect the second invocation to be gracefully ignored rather than two loops conflicting with each other.
2019-10-21Merge branch 'kitsune-quotest2'Kitsune Ral
2019-10-21ConnectionData: fix read-after-free in clearing the job queueKitsune Ral
2019-10-20Qualify types in signals and Q_INVOKABLEsKitsune Ral
Because https://doc.qt.io/qt-5/moc.html#limitations . For direct connections that doesn't matter but it very much does for queued ones. Along with this DirectChatsMap and IgnoredUsersList have been moved from Connection:: to Quotient::.
2019-10-18qmc-example -> quotest, QMCTest -> TestManagerKitsune Ral
Also: some bits of refactoring in the test code to make it more extensible. Closes #352.
2019-10-17Connection::joinRoom: make sure the room object is created early enoughKitsune Ral
All direct slots connected to finished() will run before success() is even emitted; so create the room object in the earliest slot connected to finished(), rather than to success().
2019-10-02Fix Room::localAliases()Black Hat
When homeserver's csapi is in a subdomain, e.g. matrix.example.org, the authority of api endpoint url differs from server name, example.org. This causes Room::localAliases() to fail.