Age | Commit message (Collapse) | Author |
|
Also: provide Connection::directChats() to get the whole direct chats map.
|
|
...instead of copying the whole QDebug object.
|
|
Closes #113.
|
|
|
|
|
|
|
|
It's been long overdue to separate them from the rest of the stuff (docs etc.). Also, this allows installing to a directory within the checked out git tree (say, ./install/, similar to ./build/).
|
|
Closes #113.
|
|
to it
Closes #138. This is of course not encryption support yet, rather a safeguard for rooms that use encryption.
|
|
reliably
|
|
|
|
The job will retry after the period either advised by the server or the default retry period. Closes #186.
|
|
|
|
|
|
The previous one didn't cover all the cases; the current one seems to do. Closes #192. Accompanied by the developer's notes at: https://github.com/QMatrixClient/libqmatrixclient/wiki/unread_count
|
|
|
|
...where deque<>::difference_type is long rather than int.
|
|
|
|
isDirectChat() has been declared previously but not implemented, hence a
bit of strangeness in the commit.
|
|
|
|
|
|
|
|
Basically, the whole requestDirectChat() body has been moved and generalised to doInDirectChat(), and requestDirectChat() delegates to doInDirectChat(). The logic has been updated to cope with formerly left/forgotten rooms present in the list of direct chats (cleaning up the list along the way).
|
|
The asynchronous update first implemented was more verbose and caused
more problems than provided solutions. The idea was that the internal
directChats map would better reflect the server state if updated
asynchronously. However, it also causes a local race condition; e.g., to
quickly remove rooms from direct chats one after another becomes very
non-trivial (one has to wait until the previous operation succeeds). So
after some playing with the code, hitting pitfalls along the way, I
decided to align the logic with the one for room tags; synchronously
issued signals look uglyish but at least work predictably. And race
conditions between several clients generally cannot be cleanly resolved
anyway.
|
|
requests"
|
|
|
|
This required to change numeric values for JoinState enum; so anybody
who relied on them being 0-based and/or contiguous, beware.
|
|
Not only those that already caused trouble.
|
|
|
|
|
|
Also: refactored to gather up code dealing with the semaphor.
|
|
Receiving and caching m.direct (and other non-room account data along the way); Connection::addToDirectChats/removeFromDirectChats (might get siblings in Room eventually but not now), Connection/User::requestDirectChat. Closes #163.
|
|
|
|
|
|
template<T> toJson(T&&) grabbed even things that it cannot convert, leading to unpleasant effects in a situation when all that was needed was one implicit conversion (e.g. from QList<QString> to QStringList). So now it's three trivial toJson() overloads instead of a template.
|
|
|
|
QHash doesn't overwrite an entry if it already exists; this might lead to the target file name from the previous transfer kept in the table of file transfers. The commit fixes that.
|
|
|
|
|
|
Closes #193.
|
|
Closes #191.
|
|
fix error handling in loadState()
|
|
|
|
ignore possible appendixes from content type
|
|
Currently libqmatrixclient fails checking the `Content-Type` header
when there is an appendix like "charset". That is allowed e.g. in
[rfc7231](https://tools.ietf.org/html/rfc7231#section-3.1.1.5))
One example is a Content-Type `application/json` vs `application/json;charset=UTF-8`
Setting of the charset appendis is currently not supported. It fails with
libqmatrixclient.jobs: "LoginJob" status 106 : "Incorrect content type of the response"
This PR aims to just drop that appendix as it is currently not handled somewhere else.
|
|
|
|
Don't use pointers and explicit operator new() for Avatars now that we store them in a separate container from the avatar(url)-to-room mapping. Less heap wasted.
|
|
Closes #187.
|
|
Slightly safer for the case (probably).
|
|
|