aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-09-19Room: Slight optimization of makeErrorStr()Kitsune Ral
The previous version constructed QString from const char* and QByteArray parts, only to convert it back to QByteArray; the current version does the whole thing in QByteArray terms.
2017-09-19Event::originalJsonObject(), RoomEvent validations commented outKitsune Ral
* Event::originalJsonObject() exposes the original JSON for the event without converting it to QByteArray. This is useful to quickly dump an event into a bigger JSON without reconstructing a JSON object. * Validations in RoomEvent::RoomEvent() do more harm than good. The rest of the library tolerates absence of those attributes pretty well (it wouldn't be able to do much with that anyway); at the same time, dumping JSON to logs turns out to be pretty heavy, and throwing many invalid events at a client is a good way to hit its performance.
2017-09-19Connection: More deprecations; documented callApi<>()Kitsune Ral
2017-09-16Merge branch 'master' into kitsune-invite-kickKitsune Ral
2017-09-16provideRoom: Added invitedRoom() signal; fixed issues with some transitionsKitsune Ral
Notably: * setJoinState() invocation has been missing from the previous code * processing invites did not take into account that a Leave state may already exist, thereby forcing clients that display left rooms to look through their records just in case they have to replace a Leave with Invite. * joinedRoom() was emitted even when the room is not newly joined.
2017-09-16Better API for clients to catch up on room list changesKitsune Ral
joinedRoom() and leftRoom() now pass the preempted Invite state of the room as well; roomMap() only returns Invite and Join rooms, not Leave.
2017-09-15MediaThumbnailJob: get rid of useless pimpl; add scaledThumbnail()Kitsune Ral
Also use scaledThumbnail() in User::requestAvatar()
2017-09-15Merge pull request #82 from QMatrixClient/kitsune-uncouple-factoriesKitsune Ral
Connection: Room and User factories are std::functions now
2017-09-13Add a missing #includeKitsune Ral
2017-09-09Collect files from jobs/generated into the list of built sourcesKitsune Ral
2017-09-09Kicking, inviting, exposing rooms in Invite stateKitsune Ral
Kicking and inviting use generated job classes. Rooms in Invite state are stored separately in the hash from those in Join/Leave state because The Spec says so. For clients, this means that the same room may appear twice in the rooms map if it's been left and then the user was again invited to it. The code in Quaternion that properly processes this will arrive shortly.
2017-09-09First files made by api-generatorKitsune Ral
Actual usage will come with the next commit.
2017-09-09converters.h: Facility methods for generated jobsKitsune Ral
A cherry-pick from the kitsune-apigen branch; a family of toJson() and fromJson<>() functions to unify conversion of data back and forth.
2017-09-09preamble.mustache now only mentions that the file is generatedKitsune Ral
2017-09-09Kicking, inviting, exposing rooms in Invite stateKitsune Ral
Kicking and inviting use generated job classes. Rooms in Invite state are stored separately in the hash from those in Join/Leave state because The Spec says so. For clients, this means that the same room may appear twice in the rooms map if it's been left and then the user was again invited to it. The code in Quaternion that properly processes this will arrive shortly.
2017-09-09First files made by api-generatorKitsune Ral
Actual usage will some with the next commit.
2017-09-09apigen.yaml: cleanupKitsune Ral
Commented out parts that aren't used yet; moved the whole 'env:' section down below (because it's used by Printer rather than Analyzer or Translator).
2017-09-08Prepend basePath to produce endpoint paths correctlyKitsune Ral
2017-09-08Better toJson for container objectsKitsune Ral
The previous version couldn't deal with containers of objects that have no implicit conversion to QJsonValue. The current one can.
2017-09-08Connection: Room and User factories are std::functions nowKitsune Ral
Instead of createUser() and createRoom() virtual functions, use std::function<> to store predefined lambdas that would create respective descendants from User and Room, respectively. No more need QuaternionConnection just for the sake of creating a QuaternionRoom.
2017-09-08Revert previous commit as it breaks building with VC 2015Kitsune Ral
This reverts commit da975f68f6a8503bf5466292dcdceed8c6f7fa6f.
2017-09-08Connection: Room and User factories are std::functions nowKitsune Ral
Instead of createUser() and createRoom() virtual functions, use std::function<> to store predefined lambdas that would create respective descendants from User and Room, respectively. No more need QuaternionConnection just for the sake of creating a QuaternionRoom.
2017-09-07Actually use the types map in apigen.yamlKitsune Ral
2017-09-05Initialize more properly to fix a warningKitsune Ral
2017-09-05Merge branch 'master' into kitsune-apigenKitsune Ral
2017-09-05Room: memberCount(); slight optimization and reformattingKitsune Ral
2017-09-05Include unread/notification counters to the cacheKitsune Ral
2017-09-04Use move on SyncDataRoman Plášil
2017-09-04Use QMatrixClient's fork of matrix-doc in the meantimeKitsune Ral
Because only the fork contains operationId's yet.
2017-09-04Generate job files on every Travis buildKitsune Ral
2017-09-04Travis CI: build in containers, use newer compilersKitsune Ral
api-generator only builds on newer compilers (GCC 5, Clang 3.8). Qt version is unchanged.
2017-09-04Use SyncJob::SyncData as a plain memberRoman Plášil
2017-09-03Try to introduce api-generator to Travis CIKitsune Ral
2017-09-03CMakeLists: add_custom_target(update-api), aux_source_directory to load ↵Kitsune Ral
files list - cmake --target update-api can be used to update the api files - aux_source_directory() is used to enumerate generated files instead of apifiles.txt (we wouldn't be able to rerun CMake on the changed files list anyway).
2017-09-03More fixesRoman Plášil
2017-09-02Merge pull request #81 from delijati/masterKitsune Ral
Add Connection::leftRoom signal #80
2017-09-01Add Connection::leftRoom signalJosip Delic
2017-09-02Use status return type for parseJsonRoman Plášil
2017-09-01Added (so far unused) preprocessing section to apigen.yamlKitsune Ral
2017-09-01Added files to (eventually) generate *Job classes automaticallyKitsune Ral
KitsuneRal/api-generator project is a place where all the heavy lifting will (eventually) be implemented. This commit marks a point when the generated files at least compile (whether they work is not tested yet). Return values are so far entirely ignored.
2017-09-01BaseJob::Data: expose constructors from QJsonObjectKitsune Ral
We had a stupid situation when this class has less features when compiled with newer Qt because we explicitly added a constructor from std::initializer_list for older Qt versions but did not reuse the same constructor from QJsonObject for newer versions.
2017-08-28Better documentationKitsune Ral
Thanks to CII Best Practices Badge project for the hints and for the original CONTRIBUTING.md
2017-08-28Use -pedantic with compilers that support itKitsune Ral
2017-08-27Remove saveStateFile property and just use an argument.Roman Plášil
2017-08-27Use QJsonObject.insert and QStringLiteralRoman Plášil
2017-08-23Use QUrl for state save file, create directory if it doesn't existRoman Plášil
2017-08-19BaseJob::Data: Small update to better match Qt APIKitsune Ral
Also: Query and Data constructors from initialization_list<> are no more explicit, as clang-tidy recommends.
2017-08-19Room::localUser() facility methodKitsune Ral
2017-08-18Fix compilation for Qt 5.2.1Roman Plášil
2017-08-16Implement saving save to enable incremental sync even after shutdownRoman Plášil