Age | Commit message (Collapse) | Author |
|
|
|
|
|
[ci skip]
|
|
[skip ci]
|
|
Store JSON response in BaseJob + tweaks to the generated code
|
|
Turned out libQuotient code base was not good for NMake inference rules
but qmake has been intelligent enough to detect that and disable before.
After the recent optimisations qmake's intelligence was not enough so
CONFIG += no_batch was not automatically added, leading to the linking
failure because NMake skipped compilation of all source files.
|
|
|
|
libQuotient now has gtad/ directory that stands in the way of cloning
GTAD - which is just to emphasize that cloning other projects into
the source tree has never been a good idea.
|
|
|
|
- The generated code is updated to be compatible with the BaseJob
changes introduced in the previous commit. This includes greatly
reducing the number of header files that have to be explicitly
#included, as basejob.h now #includes converters.h. Also, thanks to
the changes in BaseJob, none of generated job classes needs
a pimpl Private class.
- gtad/template.*.mustache files are replaced with data.h.mustache for
data structures (entirely defined in header files from now on) and
operation.*.mustache for API operations (also massively moved to
header files, possibly also becoming header-only in the future).
- New variable-dropping and title-overring features in GTAD 0.7 allow
to use the upstream matrix-doc repo to generate the code.
- CMakeLists.txt makes use of file globbing with CONFIGURE_DEPENDS
where possible to alleviate build reconfiguration after a GTAD call.
|
|
Fixes a compilation warning that Private is a struct in one place and
a class in another.
|
|
|
|
|
|
[skip ci]
|
|
Qt 5.12+ always optimise QRegularExpression on first usage.
|
|
* JSON response is stored internally in BaseJob, rather than passed
around virtual response handlers. This allow to lazily deserialise
parts of the JSON response when the client calls for them instead of
deserialising upon arrival and storing POD pieces. This is
incompatible with the current generated code, so temporarily FTBFS.
* BaseJob::loadFromJson() and BaseJob::takeFromJson() have been added
to facilitate picking parts of the result as described above
in derived job classes.
* BaseJob::jsonData(), BaseJob::jsonItems() and (protected)
BaseJob::reply() for direct access to the response in its various
forms.
* To further eliminate boilerplate code in generated job classes,
a group of *ExpectedKeys() methods has been added - this allows to
reflect the API definition of required response keys in a more
"declarative" way, delegating validation to BaseJob.
* parseReply() and parseJson() pair turns to singular prepareResult().
Thanks to all the changes above, in most cases it will not need
overriding, unlike before.
* BaseJob::Private::parseJson() is introduced, to wrap
QJsonDocument::parseJson() into something less verbose. This serves
a completely different purpose to the former BaseJob::parseJson().
* BaseJob::doCheckReply() takes the place, and the name, of
checkReply().
|
|
What's needed for a thumbnail is normally "scale", not "crop"
(as these are defined in The Spec).
|
|
|
|
operator+() is no more wanted with iterators on associative containers.
|
|
Qt 5.15 deprecates binary JSON format in favour of CBOR now used as
a backend for its JSON classes.
|
|
|
|
|
|
All GTAD-related files (gtad.yaml and templates) from now live in their
dedicated gtad/ directory - this helps against removing them
accidentally along with the rest of the generated files. The format
to list generated files in gtad.yaml has changed a bit before
GTAD 0.7 beta2; gtad.yaml in this commit conforms to the new structure.
|
|
parseJsonDocument() will come later.
|
|
|
|
Qt 5.15 renamed HTTP2AllowedAttribute to Http2AllowedAttribute,
deprecating the old spelling.
|
|
|
|
No functional changes either.
|
|
|
|
No functional changes here.
|
|
|
|
|
|
|
|
No functional changes.
|
|
|
|
That means much more readable templates thanks to GTAD 0.7 in turn using
the upgrade Mustache engine.
|
|
This is to prevent the jobs from several
resolveServer() / setHomeserver() invocations running in parallel.
|
|
In particular, the newly introduced Quotient_ENABLE_E2EE (which people
should NOT switch on without proper understanding as yet).
[skip ci]
|
|
|
|
connectToServer() is left for compatibility but deprecated.
|
|
The code is really defensive now, making sure there's exactly one slash
between the base path and the endpoint. It's still very conservative
about the path composition otherwise (no normalisation etc.).
|
|
CMakeLists.txt: update libQtOlm to 3.0.0
|
|
Fixes #403.
|
|
|
|
|
|
Pulled from Quaternion code.
|
|
|
|
This can be handy to pass the replaced status to QML.
|
|
Due to a missing return statement, a retry with auth case led to the job
being finished and pending at the same time, with no good consequences.
|
|
When a message is redacted it has no sender. If it happens to be
in the bulkhead, Quotient tries to promote a read marker over it and
fails on being unable to resolve the author.
|