Age | Commit message (Collapse) | Author |
|
While theoretically less robust (no equivalent of make_unique),
QScopedPointer is navigable in Qt Creator debug views, unlike
unique_ptr. Of course this will eventually be fixed; but given that
inability to create an owning pointer object means sure abnormal
termination of our code shortly afterwards, having make_unique in this
particular case doesn't help in any way at all; so unique_ptr has zero
advantages over QScopedPointer in this setting.
|
|
|
|
Same as stateCachePath but returns QDir.
|
|
|
|
|
|
|
|
This way we conform with Qt standard debug output and do not rely
on a Qt private API.
This also fixes compilation for Qt < 5.7.
|
|
|
|
|
|
A part of #236.
|
|
|
|
On the path to address #233.
|
|
Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
|
|
Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
|
|
Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
|
|
|
|
|
|
connectUntil()
|
|
Closes #273, in particular.
|
|
|
|
|
|
|
|
This should cover the Connection-related part of #253.
Connection gained lazyLoading/setLazyLoading accessors and the respective Q_PROPERTY.
When lazy loading is on, sync() adds lazy_load_members: true to its filter.
|
|
|
|
Closes #257.
|
|
A new recommended (and localisable) way of getting a piece of raw
response to display next to error messages as "details".
BaseJob::rawData() returns exactly the trimmed piece of data, no
"truncated" suffix there anymore.
|
|
Closes #127.
|
|
|
|
|
|
|
|
Breaking changes:
* guest_can_join is no more a thing - neither in Connection::createRoom, nor even in CreateRoomJob (it turned out that Synapse didn't really process this flag);
* LoginJob has changed its list of arguments. If you use Connection to do logins (and you really should), you shouldn't be affected.
* GetPublicRoomsJob now returns PublicRoomsResponse instead of providing all the response parts within the job
Watch other changes in the diff.
|
|
|
|
Speeds up lookup of user(s) in a direct chat room.
Also: "The other one's" avatar is used to set the avatar of direct
chats only, not any room with 2 participants.
|
|
|
|
Slots are Q_INVOKABLE by definition.
|
|
...and therefore deprecated for use in clients _yet_.
|
|
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.
|
|
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).
|
|
Also: as of the previous commit, we officially bump API version to 0.4
|
|
|
|
Closes #215.
|
|
Testing the waters in one place to start with.
|
|
|
|
|
|
Closes #211.
|
|
Running a request in background, aside from some tweaks on the network
layer (see QNetworkRequest::BackgroundRequestAttribute), allows to
distinguish jobs not immediately caused by user interaction (such as
fetching thumbnails). This can be used to show or not show certain
notifications in UI of clients.
Error reporting has been extended with more methods:
errorCaption() - a human-readable phrase calculated from the status
code; intended to be shown as a dialog caption and in similar
situations.
errorRawData() - former errorDetails(), returns the raw response from
the server.
errorUrl() - returns a URL that may be useful with the error (e.g. for
the upcoming "consent not given" error, this will have the policy URL).
Connection::resultFailed() - a new signal emitted when _any_
BaseJob::failure() is emitted (enables centralised error handling
across all network requests in clients).
As a part of matching changes in Connection, callApi has an overload
that allows to specify the policy; a custom enum instead of bool has
been chosen for the parameter type, to avoid clashes with (arbitrary)
types of job parameters.
|
|
Connection
(Note: this commit breaks back-compatibility.)
BaseJob::gotReply() had a bold assumption that whenever there's no reasonable JSON body in case of error, that meant IncorrectRequestError (which of course was incorrect). This led to syncs dying in Quaternion because it (correctly) considered IncorrectRequestError to be grave enough to not retry. Closes #206.
Also: don't dump the whole payload to logs, limit with initial 500 characters (closes #205)
|
|
|
|
QStringList's API is richer, after all.
|
|
1. Updates in this commit (see further) allow to generate and build
GetRoomEventsJob from message_pagination.yaml; this job completely
preempts RoomMessagesJob.
2. EventsBatch<> is no more a thing; there's EventsArray<> to replace it
but it's loaded from a JSON array rather than an event batch (a JSON
array inside another JSON object). SyncJob that used it extensively has
been moved to "conventional" containers (Events, RoomEvents and the
newly introduced StateEvents). RoomMessagesJob that also used
EventsBatch<> is decommissioned (see above).
3. RoomEventsRange is now an alias for Range<RoomEvents>, defined in
util.h (otherwise almost the same).
4. Connection::getMessages() is no more. Use Room::getPreviousContent()
and Connection::callApi<GetRooMEventsJob>() instead.
5. Moving things around in Room, since SyncJob now supplies state events
in more specific StateEvents, rather than RoomEvents.
|