Age | Commit message (Collapse) | Author |
|
|
|
...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".
|
|
(cherry picked from commit 1a832ae9b6a0d679b551fd644136e4bc17e7db29)
|
|
Proxy servers may return arbitrary HTML, for one example; so don't
expect to find a valid JSON object in whatever non-empty payload
next to a non-2xx HTTP code. Fixes #421.
(cherry picked from commit 9ef83e044ed4f8409156b19d529dfc7e45f565c1)
|
|
Part of the fix for #421.
(cherry picked from commit 104356d945671762af23e346f7898a3208770d97)
|
|
Room: fix breakage in internal member map
|
|
|
|
Fix DELETE jobs with json data
|
|
DeleteDeviceJob requires authentication, but the JSON data is not added for DELETE requests.
Since QNetworkAccessManager::deleteResource does not support body data, we need to send a custom request.
|
|
|
|
The change in 39830496 led to prev_content becoming a fallback not only
for displaying user names but also for storing them in the internal
member map, which is really not what was intended.
A lot of debug logging has been added - this will be moved to a new
logging category before merging.
|
|
Notably, screen-wide ==== fences are gone, and the status messages are
now located next to where the relevant piece of configuration occurs,
instead of having a configuration summary block. Also, features related
to code generation have been added for feature_summary().
|
|
Add feature summary to cmake file
|
|
Make it compile with QT_NO_KEYWORDS
|
|
|
|
* QT_NO_URL_CAST_FROM_STRING makes it clearer where QUrls are created
from QStrings (which incurs a parsing cost).
* QT_STRICT_ITERATORS helps detecting where begin()/end() is used
instead of cbegin()/cend(). KDE developers have verified that
the generated assembly code is identical.
|
|
|
|
|
|
Now that the logic behind producing the C++ structures changed (they
are filled in on the fly, rather than created upon job completion
and then copied/moved by the accessor), GTAD makes buildable code for
search.yaml.
|
|
Changes in e81117fb exposed a flaw in EncryptionEvent causing assertion
failure when this event is default-initialised (i.e. no encryption).
|
|
In particular: removed unnecessary #includes, deprecated and no more
used constructs, replaced stored members with dynamic generation
from JSON (TypingEvent and, especially promising for performance,
ReceiptEvent)
|
|
To align with the two other base event classes (Event and RoomEvent).
|
|
|
|
RoomPowerLevelsEvent is not used in csapi/ classes so the factory is of
no use either.
|
|
|
|
|
|
|
|
Also: add space before colon in range-based for from now on.
[skip ci]
|
|
This is a usual situation when a membership type is undefined; and
the current code constructs _a lot_ of stub events by loading them from
empty JSON. So just silence those warnings for now.
|
|
|
|
MemberEventContent: displayname and avatarUrl are now Omittables;
CS API doesn't guarantee their presence (see also
https://github.com/matrix-org/matrix-doc/issues/1375) but Quotient
used to assume they are always there, causing #412.
RoomMemberEvent: displayname() -> newDisplayName() and
avatarUrl() -> newAvatarUrl(), to emphasise the actual semantics (and
also the changed interface). The old signatures still work but are
deprecated.
Instead of roomMembername() (with weird camel-casing), three new
methods in addition to safeMemberName() are introduced to Room:
- memberName() - produces the "best known" display name for a
given member; User::name() uses it to avoid the pitfall of #412.
- disambiguatedMemberName() - this is what roomMembername() used to be;
not recommended for direct use when UI is concerned.
- safeMemberName() - remains as is, with the fix to the documentation
that used to mislead that the function returns HTML-escaped content
(it didn't, and doesn't).
- htmlSafeMemberName() - does what safeMemberName() claimed to do.
Respectively, memberNames() is deprecated in favor of safeMemberNames()
and htmlSafeMemberNames(). The corresponding Q_PROPERTY uses
safeMemberNames() now.
Similar to memberName(), Room has got memberAvatarUrl() to spare
User class from diving into Room state to find the member avatar URL.
Closes #412.
|
|
|
|
This is generated by GTAD 0.7.1 (to be released), based on the changed
registration.yaml (to be committed and pulled).
|
|
|
|
|