aboutsummaryrefslogtreecommitdiff
path: root/lib/connection.h
AgeCommit message (Collapse)Author
2019-09-12Introduce HashQ<> and UnorderedMap<>Kitsune Ral
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.
2019-08-20Connection::run()Kitsune Ral
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).
2019-08-09Namespace: QMatrixClient -> Quotient (with back comp alias)Kitsune Ral
2019-08-02Apply the new brace wrapping to source filesKitsune Ral
2019-08-02Merge branch 'master' into use-clang-formatKitsune Ral
2019-07-27E2EE: introduce EncryptedEventAlexey Andreyev
2019-07-09Merge branch 'master' into use-clang-formatKitsune Ral
2019-07-09Move serverPart() to the public APIKitsune Ral
Also: Connection::resolveServer() now only accepts MXIDs, not domains.
2019-07-06Fix clazy warningsKitsune Ral
2019-07-04Connection::token() is no moreKitsune Ral
Use Connection::accessToken() instead.
2019-07-03Room/Connection: make room aliases work properlyKitsune Ral
Closes #301.
2019-06-24Merge branch 'master' into clang-formatKitsune Ral
# 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
2019-05-19Connection: use QScopedPointer instead of unique_ptrKitsune Ral
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.
2019-05-19Move a doc-comment to its placeKitsune Ral
2019-05-03Connection::stateCacheDirKitsune Ral
Same as stateCachePath but returns QDir.
2019-04-24Make ignore-user related method Q_INVOKABLE.Black Hat
2019-03-27Connection::domain()Kitsune Ral
2019-03-02style: apply .clang-format to all .cpp and .h filesMarc Deop
2019-02-24Merge branch 'kitsune-aliases-map'Kitsune Ral
2019-02-23Remove the 'pretty' SupportedRoomVersion vector debug operatorAlexander Akulich
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.
2019-02-22Room::setAliases, Connection: roomByAlias, updateRoomAliasesKitsune Ral
2019-02-17Connection: loadingCapabilities(); sort availableRoomVersionsKitsune Ral
2019-02-15Connection: load supported room versionsKitsune Ral
A part of #236.
2019-02-15Merge branch 'master' into kitsune-room-versionsKitsune Ral
2019-02-11Connection::createRoom: support passing a room versionKitsune Ral
On the path to address #233.
2019-02-10Connection: move syncLoopTimeout to Connection::PrivateAlexey Andreyev
Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
2019-02-05Connection: simplified sync loop logic without delaysAlexey Andreyev
Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
2019-02-03Connection: separated sync loop logic with delay controlAlexey Andreyev
Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
2019-01-30Connection: infinite sync loop logic by defaultAlexey Andreyev
2019-01-13Merge branch 'kitsune-workaround-stuck-invites'Kitsune Ral
2019-01-13qt_connection_util.h: a new home for connectSingleShot() and newly made ↵Kitsune Ral
connectUntil()
2019-01-13Connection: fix/workaround glitches on joining/leavingKitsune Ral
Closes #273, in particular.
2019-01-13Connection::provideRoom: allow omitting join stateKitsune Ral
2019-01-05Connection::upload*: autodetect content type if not suppliedKitsune Ral
2018-12-11Expose Connection::nextBatchToken()Kitsune Ral
2018-12-08Connection: support members lazy-loadingKitsune Ral
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.
2018-11-23Room/Connection: don't save the just loaded room cacheKitsune Ral
2018-11-22Save state cache per-roomKitsune Ral
Closes #257.
2018-11-19BaseJob::rawDataSample()Kitsune Ral
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.
2018-10-29Connection::joinRoom: allow to specify intermediate serversKitsune Ral
Closes #127.
2018-09-16Merge remote-tracking branch 'upstream/master'Josip Delic
2018-09-16Connection: make factories a bit more customisableKitsune Ral
2018-08-29Merge branch 'master' of https://github.com/QMatrixClient/libqmatrixclientJosip Delic
2018-08-25Update to the recent CS API (watch out for breakage)Kitsune Ral
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.
2018-08-25Update marius voip to new libqtmcJosip Delic
2018-08-11Reverse direct chats mapKitsune Ral
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.
2018-08-11Connection::*DirectChat(): add overloads accepting User*Kitsune Ral
2018-08-11Connection: drop extraneous Q_INVOKABLEKitsune Ral
Slots are Q_INVOKABLE by definition.
2018-08-03Connection::sendMessage: mark as tentativeKitsune Ral
...and therefore deprecated for use in clients _yet_.
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.