aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-24Room: cleanupKitsune Ral
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-09-11CMakeLists.txt: use set_target_properties(); specify C++ std per-targetKitsune Ral
2019-08-29Merge pull request #348 from quotient-im/kitsune-better-basejobKitsune Ral
Better BaseJob
2019-08-27libquotient.pri: use c++1z to help older qmakeKitsune Ral
CONFIG *= c++17 is available from Qt 5.12 only.
2019-08-27More compliant 'using' for chrono_literalsKitsune Ral
Compilers warn on using 'using ...::operator""s' because they think we're redefining the reserved suffix.
2019-08-27Don't use enumerator attributesKitsune Ral
Anything after enumerators is a problem for moc before Qt 5.12; so we can't use enumerator attributes before then.
2019-08-27Tighten the code; add a missing #includeKitsune Ral
MSVC warns on class/struct mismatch and errors on std::array because `<array>` is not indirectly included on that platform.
2019-08-26Room::calculateDisplayname: use local aliases for room namingKitsune Ral
The Spec now allows it, even if with a disclaimer that it's subject for further removal.
2019-08-26setAvatarForRoom: try recover from otherAvatars inconsistencyKitsune Ral
Hopefully manages cases like #347 in a better way.
2019-08-25RoomMessageEvent::content(): constify event contentKitsune Ral
2019-08-20BaseJob/ConnectionData: connection-wide rate-limitingKitsune Ral
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.
2019-08-20BaseJob: Status/StatusCode tweaks, cleanup, mo' commentsKitsune Ral
Notably, recovered Status::fromHttpCode() that was introduced in 5722ceaf4bd10c29f1091e3dc5a87f5650ea8c71 but fell victim of a careless merge (so much for introducing non-topical changes in feature branches).
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-20Store userId in ConnectionData instead of ConnectionKitsune Ral
To collect all connection-identifying information in a single place.
2019-08-19Room::Private::doSendEvent: fix too early change in BaseJob signalsKitsune Ral
That's a matter of another upcoming commit.
2019-08-18room.cpp: applied clang-format with updated penalty valuesKitsune Ral
2019-08-18Room: use new logging categoriesKitsune Ral
2019-08-18Room::decryptMessage: now with the header file changesKitsune Ral
2019-08-18Merge pull request #345 from rpallai/UnreadNotifsChangeKitsune Ral
Update the cache for sure if unread counters were changed
2019-08-18Room::decryptMessage: fix memory leaks and dangling pointersKitsune Ral
2019-08-18New logging categories: events.state, events.messages, and e2eeKitsune Ral
2019-08-18.clang-format: minor tweaks in penaltiesKitsune Ral
2019-08-17Update the cache for sure if unread counters were changedRoland Pallai
In Quaternion, I was able to reproduce a process where `d->notificationCount` and `d->highlightCount` were changed in `Room::updateData()` meanwhile `roomChanges` indicated `NoChange` thus the cache became permanently inconsistent with running state. Without deep understanding of `roomChanges` logic, I've applied this straightforward change which made this phenomenon unreproducible.
2019-08-16BaseJob: support M_USER_DEACTIVATED error codeKitsune Ral
Closes #344.
2019-08-13Support for server notices rooms (MSC1452)Kitsune Ral
Closes #326.
2019-08-12README.md: a few notes around using with qmakeKitsune Ral
2019-08-12qmc-example.pro: CONFIG += c++17 warn_onKitsune Ral
2019-08-12.travis.yml: add qtmultimedia5-dev to Linux build boxesKitsune Ral
2019-08-12Update Qt5 package naming to match that in bionicKitsune Ral
2019-08-12Ok, bionic has its own Qt5Kitsune Ral
2019-08-12.travis.yml: Switch to bionicKitsune Ral
2019-08-12e2ee.h: Make constants inline instead of staticKitsune Ral
This changes from internal linkage for every translation unit including e2ee.h to external linkage across translation units but without the need to create a .cpp file just to define and init the constants.
2019-08-12Make Settings::remove() to clear the legacy; more doc-commentsKitsune Ral
2019-08-12CONTRIBUTING.md: more about commenting codeKitsune Ral
2019-08-11CMakeLists.txt: tell CMake to not add /W3 flag for MSVCKitsune Ral
...because /W4 is explicitly added instead.
2019-08-11Use [[maybe_unused]] instead of [[gnu::unused]]Kitsune Ral
2019-08-11More MSVC suppresions; switch to C++17 in qmake as wellKitsune Ral
2019-08-11Now that we're C++17, remove old compatibility cruftKitsune Ral
2019-08-11CMakeLists.txt: more MSVC warning suppresionsKitsune Ral
2019-08-11CMakeLists.txt: suppress more MSVC warningsKitsune Ral
2019-08-11CMakeLists.txt: fixed typosKitsune Ral
2019-08-11CMakeLists.txt: suppress some MSVC warningsKitsune Ral
2019-08-11Configure MSVC warnings in CMakeLists.txt; build in AppVeyor with Qt 5.13Kitsune Ral
2019-08-11README.md: oldest good Debian is Buster, not StretchKitsune Ral
[skip ci]
2019-08-11Drop EventType namespace and DEFINE_EVENTTYPE_ALIAS macroKitsune Ral
They've been deprecated for almost a year by now.
2019-08-11Officially bump requirements: CMake 3.10, C++17, Qt 5.9Kitsune Ral
2019-08-11Connection: check for cache_type setting in libQuotient groupKitsune Ral
The fallback to libQMatrixClient still remains.
2019-08-11SyncData: x-qmatrixclient -> x-quotientKitsune Ral
2019-08-11CleanupKitsune Ral
[skip ci]