Age | Commit message (Collapse) | Author |
|
avatars-to-rooms mapping
Because they are uncopiable, unlike pointers to them; and a combination of QHash of avatars and a QMultiHash of rooms is much more convenient than a std::vector<std::pair<...>>.
|
|
Enables to address QMatrixClient/Quaternion#284. Also fixes a gibberish condition in Room::Private::renameMember() that led to improper warnings and a too early return.
|
|
User::Private stores two new maps (for display names and avatars respectively) and is able to retrieve and store names/avatars on a per-room basis. The "most used" trait is stored separately and room lists are not kept for it (because most people have a single name and a single avatar across all or most rooms).
TODO: The avatar container should be replaced with something less clumsy; the current code doesn't even compile with MSVC. A "handle" copyable structure that would hold the Avatar is one of options.
Closes #141.
|
|
|
|
Room::user() came instead of Room::Private::member() and memberJoinState() came instead of Private::hasMember.
|
|
Although the setting part of the work is class(User or Room)-specific, the uploading part is common, so Avatar provides it now.
Also: there's no need to store Connection, as it's only used in get() and upload() - just pass it as the parameter to the methods.
|
|
To do that, both RoomMemberEvent and MemberEventContent got respective constructors.
Also: the fallback value for unknown _received_ membership types is now Undefined; it's not allowed in member events for sending (will fail on assertion now) because the server requires membership to be explicitly set.
|
|
response
|
|
For a very brief period between calling BaseJob::abandon() and deletion of the job object.
|
|
A symptom that you suffered from it is you don't see any usernames whatsoever, and after restarting room names are also gone (to fix that, delete cache files).
|
|
Basically, segments of originalJsonObject() are used as-you-go instead of parsing them upon event creation.
|
|
|
|
Expose download URLs
|
|
Closes #168.
|
|
|
|
|
|
|
|
A static method that constructs a request URL for this job and the passed set of parameters.
|
|
|
|
Closes #287.
|
|
|
|
Works (at least, should work) with both Qt Widgets and QML.
|
|
Move forgetRoom over to slots #166
|
|
|
|
Make qmake warning spec compatible with msvc
|
|
|
|
Closes #161. Doesn't make GCC 4.9.2 officially supported but libqmatrixclient can be compiled with it as of now.
|
|
Compared to the (very similar) Quaternion project configuration, this one adds qmake-based building with MSVC 2017 (MSVC 2015 can be added if anybody needs it).
|
|
|
|
Closes #34.
|
|
|
|
|
|
Did two QChar::isDigit() overloads, one static and one member, confuse it?
|
|
Did two QChar::isDigit() overloads, one static and one member, confuse it?
|
|
|
|
|
|
|
|
It's still an open question whether it's better to store a separate
sorted index of users, next to an unsorted one; but a sorted list of
users is of much more use in GUI than an unsorted one.
|
|
|
|
|
|
createRoom and createUser renamed to roomFactory and userFactory
(because createRoom will mean a different thing); unneeded #include
moved to the cpp file.
|
|
|
|
User::fullName() is used in Room::roomMembername now. That string
construction may be further cached now if it ever becomes a bottleneck.
|
|
Should improve compatibility with compilers that don't like conversions
between different std::unique_ptr<> types.
|
|
When there are too many rooms to process, this gives at least some
bandwidth for the GUI in the meantime.
|
|
|
|
To make it easy to use User objects and fetch room and user avatars from QML. Closes #155.
|
|
To make debugging (including QML debugging) more convenient.
|
|
Also switch prev_content() from accidental snake case to camel case (old name still provided for compatibility).
|
|
This is needed for QML integration. Closes #155.
|