aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-12EventItemBase: Allow adding custom dataKitsune Ral
A new field of std::any type is added that allows clients to "annotate" any event item with arbitrary kind of data. This is mainly intended so that clients could calculate certain information about the item (e.g. special formatting depending on the event contents, or position) without having to calculate this information every time it is visualised. In case of Quaternion, the idea is to calculate the "spamminess" of the event basing on the past activity of a given user in this room - calculating it upon displaying each event is extremely heavyweight.
2021-01-11Ok, do the same in a different wayKitsune Ral
2021-01-11Don't run the test if TEST_USER is emptyKitsune Ral
2021-01-11Add a timeout to quotest runsKitsune Ral
The current Quotest gets stuck somewhere, and the its big internal 3-minute watchdog doesn't cut it for some reason. While investigating that, an external timeout would be quite handy.
2021-01-11LGTM: fine-tune the set of analysed filesKitsune Ral
2021-01-08quotest: use the target room for loadMembers testKitsune Ral
Now that we've crowded it with a few synthetic users, lazy-loading of members doesn't some other room to get tested. Bonus: Connection::roomByAlias() has its own very simple test now. (cherry picked from commit d09383d5dc7379c534860b5a66467a32d6adc932)
2021-01-07Connection: don't explicitly reset QPointersKitsune Ral
See #437 for the discussion.
2021-01-07isJobRunning() -> isJobPending()Kitsune Ral
To be very clear what this function checks. See also #437.
2021-01-07BaseJob: setStatus(Pending) on scheduling a retryKitsune Ral
Fixes #437. (cherry picked from commit 12e00b234e5c5f4ed57b5c400d06f780e71014f4)
2021-01-07Connection::resolveServer: abandon is not a failureKitsune Ral
So just reset the base URL and return, with no error signals. (cherry picked from commit be00308ad67286b45912202750fe49fb87f16e4a)
2021-01-07BaseJob: more loggingKitsune Ral
(cherry picked from commit 4f06d46d6d6062d6d17f69eeaddb7810edac5bbf)
2021-01-07Prefer connecting to BaseJob::result(), not finished()Kitsune Ral
...because finished() includes abandoning and should only be relevant when lifecycle issues are involved. (cherry picked from commit 90d41b697af39253483d9bcca4e57b11d2197112)
2021-01-07Merge pull request #436 from heirecka/datadir-instead-hard-coding-shareKitsune Ral
Use CMAKE_INSTALL_DATADIR instead of hard-coding share
2021-01-06Use CMAKE_INSTALL_DATADIR instead of hard-coding shareHeiko Becker
Signed-off-by: Heiko Becker <heirecka@exherbo.org>
2021-01-02Drop .travis.ymlKitsune Ral
[skip ci]
2021-01-02Merge pull request #434 from quotient-im/kitsune-gha-ciKitsune Ral
Migrate to GitHub Actions
2021-01-02Add Valgrind on LinuxKitsune Ral
2021-01-01GTAD requires GCC 8 at leastKitsune Ral
2021-01-01Add update-api supportKitsune Ral
Along adding update-api support DESTDIR and CMAKE_ARGS were moved to the environment setup step in order to use `${{ runner.workspace }}` for installation and not pollute `${{ github.workspace }}` where libQuotient sources reside.
2021-01-01Better quotest origin line; setup CC/CXX globallyKitsune Ral
There's no "job number" anymore but a textual description of the job is even better.
2021-01-01A few renames; trigger by PRs too; start quotestKitsune Ral
2021-01-01Add E2EE config; install libQuotient, build quotestKitsune Ral
2021-01-01Use the default path to install QtKitsune Ral
2021-01-01Fix using a C compiler for CXX; don't fail-fastKitsune Ral
2021-01-01.clang-format: more old ClangFormat compatKitsune Ral
2021-01-01.clang-format: ensure older ClangFormat compatibilityKitsune Ral
IndentGotoLabels is a ClangFormat 10 thing
2020-12-29First shot at GHAKitsune Ral
2020-12-28Merge pull request #425 from ognarb/stickerKitsune Ral
Add support for stickers
2020-12-28Merge branch 'kitsune-fix-msvc-build' into masterKitsune Ral
2020-12-28Connection: fix FTBFS with Quotient_E2EE_ENABLEDKitsune Ral
2020-12-28event.h: Fix breakage of AppVeyor CIKitsune Ral
The breakage was caused by 639f1d48.
2020-12-28Add cmake changeCarl Schwan
2020-12-28Add support for sticker eventsCarl Schwan
2020-12-28Room: inline a once-used variableKitsune Ral
2020-12-28Room: really fix namesakes assertion failureKitsune Ral
This removes now-deprecated RoomMemberEvent API usages and also does a few more things differently from the stable branch. Rather than rely on prev_content (the way pre-0.7 goes), processStateEvent() now includes a pre-check for no-op state events (the fix in ff020f3b turned out to be insufficient for such events and they still caused the same assertion failure at some point down the line). Now the state event is only added to currentState and, where relevant, to baseState, if it actually changes the room state; otherwise, it is ignored for the purpose of state tracking (even when still added to the timeline, if it came in the timeline block). One side-effect of this change is that processStateEvent() now returns OtherChange instead of NoChange for unknown state events. At the same time removeMemberFromMap() now has an additional safety net, making sure that a given user is actually deleted from the map even if their name is mismatched. This comes at a cost of looking through the whole hashmap but normally should not occur with the current code that shaves away no-op state events. We'll only see when some client starts to actively use 0.7 (quotest doesn't trigger those).
2020-12-28Add a new logging category for room member changesKitsune Ral
MEMBERS, aka quotient.events.members.* - this was promised in ff020f3b but not actually done "before merging".
2020-12-28Use generated SetReadMarkerJob instead of PostReadMarkersJobKitsune Ral
2020-12-28BaseJob::initiate: add Q_LIKELYKitsune Ral
...to show the sunny-day case.
2020-12-28Cleanup and clang-tidy/clazy fixesKitsune Ral
2020-12-28Connection: refactor the resolve/login codeKitsune Ral
1. resolveServer() now emits homeserverChanged() even when there's no .well-known file found. 2. checkAndConnect() entirely removed from the header file. 3. Sunny-day scenario for assumeIdentity() is now asynchronous, triggering a call to /whoami to double-check the user. 4. LoginFlow aliases is moved out from LoginFlows to Quotient namespace.
2020-12-28More comments/documentationKitsune Ral
Notably, recommend using loginFlowsChanged() rather than homeserverChanged() to detect when a Connection object is ready for a login sequence. Related: #427.
2020-12-28event.h: Minor tweaks around visit<>Kitsune Ral
2020-12-27function_traits<>: define as empty by defaultKitsune Ral
An incomplete type was preventing some SFINAE cases for literal types.
2020-12-27Merge pull request #430 from nicolasfella/replycleanupKitsune Ral
Fix use-after-free of QNetworkReply in BaseJob
2020-12-27Fix use-after-free of QNetworkReply in BaseJobNicolas Fella
Usually QNetworkAccessManager expects the user to delete the replies, but when the QNetworkAccessManager itself is deleted it deletes all pending replies (https://code.woboq.org/qt5/qtbase/src/network/access/qnetworkaccessmanager.cpp.html#529). This can lead to use-after-free crashes when d->reply is accessed. By putting the reply into a QPointer the exiting if(d->reply) checks can work properly.
2020-12-24Refresh CONTRIBUTING.mdKitsune Ral
[skip ci] (cherry picked from commit de2fa43fc7cc89b4a45cbd885866b5ca747751ef)
2020-12-24quotest: wait until the final report is actually sentKitsune Ral
Previously the code was waiting until an arbitrary event is sent. (cherry picked from commit 424d5c33542c4c38baefb773163e9ebed1accfb6)
2020-12-24Room: don't accept . at 0-th position in the tagKitsune Ral
Also: use a structured binding for better code readability. (cherry picked from commit 66972c81d018231f08f3767feda4b41ae5e1b8e0)
2020-12-24Fix clang-tidy/clazy warningsKitsune Ral
(cherry picked from commit 0a2acd750a4155969092be674ed3dd9a71b2354f)
2020-12-23BaseJob::Status: add comparison with intKitsune Ral
Since Status single-parameter constructor is (intentionally) not explicit, comparisons may not do what's expected in cases like the one fixed by 3ef036cd. This makes comparisons "do the right thing".