Age | Commit message (Collapse) | Author |
|
|
|
device_one_time_keys_count
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
|
|
* BaseJob::initiate() now calls ConnectionData::submit()
without relying on Connection to do that
* ConnectionData::submit() is now the only site where a job enters
Pending state
* No more shortcuts to BaseJob::sendRequest(), even retries are sent
through the ConnectionData submission queue
* Additional validation in BaseJob::initiate() that the request data
device is actually open (because QtNetwork API officially
requires that, even if you can get away passing a closed QBuffer
to it)
|
|
No more "The file is already open" log messages.
|
|
The first part closes #358; the second part is a workaround for non-standard
cases when endpoints without security by the spec turn out to be secured
(in particular, the case of authenticating media servers).
|
|
See the change in connection.cpp for the example of usage.
Also: removed static_asserts: the first one is provided by std::optional,
and the second one is only relevant to edit().
|
|
Xcode 10 doesn't have it, and value() is not quite fitting
mostly-exceptionless Quotient anyway.
|
|
That breaks API all over the place but:
1. The fixes are trivial.
2. More of std:: is used instead of home-baking the same stuff.
|
|
This is mostly internal but clients may see fewer spurious sync failures
upon logging out.
|
|
...in the sense that you can call it twice and expect the second
invocation to be gracefully ignored rather than two loops conflicting
with each other.
|
|
Because https://doc.qt.io/qt-5/moc.html#limitations .
For direct connections that doesn't matter but it very much does
for queued ones. Along with this DirectChatsMap and IgnoredUsersList
have been moved from Connection:: to Quotient::.
|
|
All direct slots connected to finished() will run before success() is
even emitted; so create the room object in the earliest slot connected
to finished(), rather than to success().
|
|
Closes #354.
|
|
Invading into std:: is frowned upon, even though legitimate from the C++ standard perspective. Given that it's possible to pass a hash object to unordered_map, it only takes an alias for std::unordered_map to avoid having to specialize std::hash. And besides, a generic compatibility bridge between qHash and std::hash has been long needed.
std::hash<QString> in converters.h remains for now; it will be dropped separately when the API files get regenerated to use UnorderedMap.
|
|
As before, completely transparent for clients, driven by 529 errors from
the server (but cases of rate limiting are signalled by
BaseJob::rateLimited). That brings changes to BaseJob API: timeouts now
use int64_t and also can be handled in std::chrono terms; aboutToStart()
-> aboutToSendRequest(); started() -> sentRequest(). Closes #292.
|
|
Finally, clients can pre-create job objects and then separately submit
them for execution on a given connection - previously such separation
was a privilege of Connection (others had to use Connection::callApi<>,
which invoked jobs right away).
|
|
To collect all connection-identifying information in a single place.
|
|
The fallback to libQMatrixClient still remains.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.well-known support
|
|
|
|
|
|
Also: Connection::resolveServer() now only accepts MXIDs, not domains.
|
|
|
|
|
|
See https://github.com/KDE/clazy/blob/master/docs/checks/README-auto-unexpected-qstringbuilder.md
Closes #613.
|
|
|
|
|
|
|
|
Use Connection::accessToken() instead.
|
|
Closes #301.
|
|
|
|
# Conflicts:
# CMakeLists.txt
# lib/avatar.cpp
# lib/connection.cpp
# lib/connection.h
# lib/connectiondata.cpp
# lib/csapi/account-data.cpp
# lib/csapi/account-data.h
# lib/csapi/capabilities.cpp
# lib/csapi/capabilities.h
# lib/csapi/content-repo.cpp
# lib/csapi/create_room.cpp
# lib/csapi/filter.cpp
# lib/csapi/joining.cpp
# lib/csapi/keys.cpp
# lib/csapi/list_joined_rooms.cpp
# lib/csapi/notifications.cpp
# lib/csapi/openid.cpp
# lib/csapi/presence.cpp
# lib/csapi/pushrules.cpp
# lib/csapi/registration.cpp
# lib/csapi/room_upgrades.cpp
# lib/csapi/room_upgrades.h
# lib/csapi/search.cpp
# lib/csapi/users.cpp
# lib/csapi/versions.cpp
# lib/csapi/whoami.cpp
# lib/csapi/{{base}}.cpp.mustache
# lib/events/accountdataevents.h
# lib/events/eventcontent.h
# lib/events/roommemberevent.cpp
# lib/events/stateevent.cpp
# lib/jobs/basejob.cpp
# lib/jobs/basejob.h
# lib/networkaccessmanager.cpp
# lib/networksettings.cpp
# lib/room.cpp
# lib/room.h
# lib/settings.cpp
# lib/settings.h
# lib/syncdata.cpp
# lib/user.cpp
# lib/user.h
# lib/util.cpp
|
|
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
|
|
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
|
|
|
|
Closes #323.
|
|
|
|
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.
|
|
Also rewrite the account data piece with visit().
|
|
Same as stateCachePath but returns QDir.
|
|
Closes #316.
|
|
|