Age | Commit message (Collapse) | Author |
|
|
|
The previous version couldn't deal with containers of objects that have no implicit conversion to QJsonValue. The current one can.
|
|
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.
|
|
|
|
|
|
|
|
Because only the fork contains operationId's yet.
|
|
|
|
api-generator only builds on newer compilers (GCC 5, Clang 3.8). Qt version is unchanged.
|
|
|
|
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).
|
|
Add Connection::leftRoom signal #80
|
|
|
|
|
|
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.
|
|
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.
|
|
Thanks to CII Best Practices Badge project for the hints and for the original CONTRIBUTING.md
|
|
|
|
Also: Query and Data constructors from initialization_list<> are no more explicit, as clang-tidy recommends.
|
|
|
|
|
|
|
|
|
|
|
|
Room event timestamp can also be undefined
|
|
|
|
|
|
Events creation and sending
|
|
|
|
1. PostMessageJob is now SendEventJob, which reflects two things: first, it's a PUT instead of a POST (POST for /send is not supported by the latest spec anyway), so that we could enable tracking transaction ids for local echo in the near future; second, it's no more just about messages, the job can support sending any room events (topic changes etc.).
2. Room::postMessage() now uses the new RoomMessageEvent API to send m.room.message events.
|
|
QString msgType allows non-standard types (we don't want to restrict clients to types from the spec)
|
|
mimeType is relevant to most of the content types, and at the same time getting a MIME type in a generic way is handy for clients to uniformly detect whether they can display the content and what renderer to use for it.
|
|
RoomMessageEvent and MessageContentEvent::* classes have been massively overhauled to enable creation of m.room.message events locally instead of from JSON.
|
|
This includes RoomEvent gaining transactionId property and addId() method so that it could gain ids when being/having been sent.
|
|
Use std::initializer_list instead of QList<> because we actually want to construct from initializer lists; and only enable Data(std::initializer_list) for older Qt's that don't have the same on the level of QJsonObject.
|
|
The generation algorithm doesn't support several Quaternions using the same accessToken, as of yet.
|
|
|
|
Split bridge name into a separate field in user model
|
|
|
|
|
|
Make markAllMessagesAsRead() Q_INVOKABLE
|
|
|
|
Expose userlist to QML
|
|
|
|
|
|
|
|
Events refactoring
|
|
|
|
The biggest change is we have no pimpls in Event objects anymore - because it's two new's instead of one per Event, and we have thousands and even more of Events created during initial sync. The other big change is introduction of RoomEvent, so that now the structure of events almost precisely reflects the CS API spec. The refactoring made UnknownEvent unnecessary as a separate class; a respective base class (either RoomEvent or Event) is used for this purpose now. All the other changes are consequences of these (mostly of RoomEvent introduction).
|
|
|