Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
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.
|
|
|
|
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)
|
|
See #437 for the discussion.
|
|
To be very clear what this function checks. See also #437.
|
|
Fixes #437.
(cherry picked from commit 12e00b234e5c5f4ed57b5c400d06f780e71014f4)
|
|
So just reset the base URL and return, with no error signals.
(cherry picked from commit be00308ad67286b45912202750fe49fb87f16e4a)
|
|
(cherry picked from commit 4f06d46d6d6062d6d17f69eeaddb7810edac5bbf)
|
|
...because finished() includes abandoning and should only be relevant
when lifecycle issues are involved.
(cherry picked from commit 90d41b697af39253483d9bcca4e57b11d2197112)
|
|
Use CMAKE_INSTALL_DATADIR instead of hard-coding share
|
|
Signed-off-by: Heiko Becker <heirecka@exherbo.org>
|
|
[skip ci]
|
|
Migrate to GitHub Actions
|
|
|
|
|
|
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.
|
|
There's no "job number" anymore but a textual description of the job
is even better.
|
|
|
|
|
|
|
|
|
|
|
|
IndentGotoLabels is a ClangFormat 10 thing
|
|
|
|
Add support for stickers
|
|
|
|
|
|
The breakage was caused by 639f1d48.
|
|
|
|
|
|
|
|
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).
|
|
MEMBERS, aka quotient.events.members.* - this was promised in ff020f3b
but not actually done "before merging".
|
|
|
|
...to show the sunny-day case.
|
|
|
|
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.
|
|
Notably, recommend using loginFlowsChanged() rather than
homeserverChanged() to detect when a Connection object is ready for
a login sequence. Related: #427.
|
|
|
|
An incomplete type was preventing some SFINAE cases for literal types.
|
|
Fix use-after-free of QNetworkReply in BaseJob
|
|
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.
|
|
[skip ci]
(cherry picked from commit de2fa43fc7cc89b4a45cbd885866b5ca747751ef)
|
|
Previously the code was waiting until an arbitrary event is sent.
(cherry picked from commit 424d5c33542c4c38baefb773163e9ebed1accfb6)
|
|
Also: use a structured binding for better code readability.
(cherry picked from commit 66972c81d018231f08f3767feda4b41ae5e1b8e0)
|
|
(cherry picked from commit 0a2acd750a4155969092be674ed3dd9a71b2354f)
|
|
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".
|