aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-08-03Connection::sendMessage: mark as tentativeKitsune Ral
...and therefore deprecated for use in clients _yet_.
2018-08-01Event: use Q_DISABLE_COPYKitsune Ral
2018-07-31Room::readMarkerMoved: pass 'from' and 'to' ids with the signalKitsune Ral
2018-07-31RoomEvent: don't store transactionId separatelyKitsune Ral
It's present on the vast minority of events so better be embedded into JSON instead.
2018-07-29csapi: define PushRule more accuratelyKitsune Ral
It's not always a JSON object; it's either a SetTweakAction object or a string. (Unfortunately, QVariant isn't a template type and there's no easy way to put Q_DECLARE_METATYPE(SetTweakAction) in a Mustache template, so adding one is left as an exercise to the user now.)
2018-07-28csapi/third_party_lookup.*: Properly pass a variadic (aka exploded) parametersKitsune Ral
Most of the actual change was in the API definition files (thanks to @anoadragon453), plus a converter from a QJsonObject map to the URL query string.
2018-07-28Room: validate tags before sending them to the serverKitsune Ral
See https://github.com/matrix-org/matrix-doc/pull/1457 for the background.
2018-07-27Merge branch 'kitsune-local-echo'Kitsune Ral
2018-07-27Update tests (WIP)Kitsune Ral
2018-07-27Make Room::postMessage and Room::postHtmlMessage return transactionIdKitsune Ral
This is at least some (actually, not even that bad) identification of a message. Ideally it would probably be to return some handler that would allow to track the end-to-end status of the event - from getting sent to landing in the timeline. Right now the experience is crippled - transactionId always exists but only works for message events and Room has no way to give the event status by transactionId. pendingEvent* signals are somewhat helping, though.
2018-07-27Provide a way to match the echo against the synced eventKitsune Ral
This needed to split the container with the freshly arrived events into parts that don't have local echo and echo'ed events, and add them to the timeline emitting two different pairs of signals. Instead of being removed, pending events are now merged (effectively they are removed from unsyncedEvents container anyway but models can represent this as an echo event being "transformed" into a full-fledged one on a timeline).
2018-07-27util.h: findFirstOfKitsune Ral
A spin on the standard algorithm.
2018-07-27Initial support for local echoKitsune Ral
The Room class has gained a new internal container, unsyncedEvents, storing locally-created Event objects that are about to be sent or are sent but not yet synced. These objects are supposed to be complete enough to be displayed by clients in a usual way; access to them is provided by Room::pendingEvents() accessor. A set of pendingEvent* signals has been added to notify clients about changes in this container (adding, removal, status update). Yet unsent events don't have Event::id() at all; sent but yet unsynced ones have Event::id() but have almost nothing else except the content for now (probably a sender and an (at least local) timestamp are worth adding). Also: SendEventJob is removed in favor of GTAD-generated SendMessageJob.
2018-07-27connectSingleShot()Kitsune Ral
Time and again I need one-off slots that disconnect once they are done. The code has been inside Connection implementation for quite some time, now it's put to the interface for usage in other places (notably qmc-example).
2018-07-27Fix compilation with ClangKitsune Ral
2018-07-27makeEvent<>: Add a doc commentKitsune Ral
[ci skip]
2018-07-27event.h: drop eventCast for references; other cleanupKitsune Ral
Omittable<> doesn't work with reference types and returning an unknown event spoils the experience. It's much simpler to just deal with event pointers instead.
2018-07-27Omittable<>: use std::decay<>, add assertionKitsune Ral
...against unwrapping omitted values (the release build will return a default-constructed value).
2018-07-25Merge pull request #225 from encombhat/masterKitsune Ral
Fix compilation issue of qmc-example.
2018-07-24Fix compilation issue of qmc-example.Black Hat
2018-07-23Fix rooms tags being incorrectly setKitsune Ral
Many thanks to @encombhat for pinpointing.
2018-07-22Switched to GTAD 0.7-preKitsune Ral
{{>}} instead of {{#@filePartial}}, library macros begin with _ instead of @, mustache/definitions split - see the GTAD commit log.
2018-07-22gtad.yaml: cleanupKitsune Ral
2018-07-22Merge pull request #223 from encombhat/masterKitsune Ral
Expose Room::addTag() and Room::removeTag() to QML
2018-07-22Change order data type.Black Hat
2018-07-22csapi: Minor cleanup in #includes, part 2Kitsune Ral
2018-07-22csapi: Minor cleanup in #includesKitsune Ral
2018-07-22qmake: use object_parallel_to_sourceKitsune Ral
2018-07-21csapi: add definitions/auth_data.* and optimise out trivial files with the ↵Kitsune Ral
latest GTAD
2018-07-21Overload Room:addTag.Black Hat
2018-07-21Mark Room::addTag() and Room::removeTag() as Q_INVOKABLE.Black Hat
2018-07-21csapi: Fix indentaton of data structures inside job classesKitsune Ral
2018-07-20csapi: Rename entities in application-service/Kitsune Ral
The actual change is in API definition files, this is just regeneration.
2018-07-19ConnectionData: use std::move()Kitsune Ral
2018-07-19Connection::stateChanged() signalKitsune Ral
Also: as of the previous commit, we officially bump API version to 0.4
2018-07-19qmake/CMake: Add lib/application-service/definitions/*Kitsune Ral
2018-07-18csapi: third_party_lookup.* and its dependencies in application-service/Kitsune Ral
As per the latest API definitions.
2018-07-18csapi: Doxy-comments thanks to the latest GTADKitsune Ral
2018-07-16Connection::uploadFile(): Fix a missing negationKitsune Ral
...leading to uploadFile() being never even functional - the code really needs tests. Closes #221.
2018-07-16Fix a clazy warningKitsune Ral
2018-07-11Room: (optionally) keep redaction events in the timelineKitsune Ral
If KEEP_REDACTIONS_IN_TIMELINE is defined, the library adds redaction events to the timeline as well. If not, the legacy behaviour is used: redaction events themselves are dropped from the timeline and only stored as parts of redacted events. Closes #220. Closes #196 (requires KEEP_REDACTIONS_IN_TIMELINE for that).
2018-07-11converters.h: overload addTo() for QStringList to fix FTBFS with the new csapiKitsune Ral
2018-07-11csapi: Update to the latest API definitionsKitsune Ral
Presence requires authentication; GetConfigJob; GetLoginFlowsJob; serverName parameter in JoinRoomJob.
2018-07-11Introduce DISABLE_EVENTTYPE flagKitsune Ral
If defined (value doesn't matter), it will suppress generation of deprecated EventType constants. Not defined by default, as of 0.4.
2018-07-11EventFactory::make() should return nullptr in case of failureKitsune Ral
Otherwise factory chaining doesn't work right (an unknown event returned by a chained factory is treated as successful parsing).
2018-07-11Add missing #includesKitsune Ral
2018-07-11event.h: protect from readding factory methodsKitsune Ral
2018-07-11Room::isRedaction: disallow empty pointersKitsune Ral
They should not come anywhere around Room.
2018-07-11EventTypeRegistry::getMatrixType(): move implementation to .cppKitsune Ral
2018-07-10Room::postHtmlMessage() - a facility method to send HTML messagesKitsune Ral