aboutsummaryrefslogtreecommitdiff
path: root/user.cpp
AgeCommit message (Collapse)Author
2018-01-14User: Q_PROPERTYs; setAvatar()Kitsune Ral
2017-12-28Switch from QPixmap to QImage; add convenience avatar() overloads to Room ↵Kitsune Ral
and User The switch is necessary because MediaThumbnailJob is supposed to return something that can be worked on in non-GUI threads (as is the case of QML image providers), and QPixmap is not supposed for usage out of the main thread.
2017-11-10Add Telegram to the list of bridge suffixesKitsune Ral
2017-11-10Fix (IRC) bridge detectionRoman Plášil
2017-10-27Support m.room.avatar eventsKitsune Ral
The events are detected in /sync output, and avatars for rooms are loaded from respective URLs. Clients can use Room::avatar() method to request a pixmap of a certain size, and react to avatarChanged() in order to update the UI when new pixmaps/avatars arrive. avatarChanged() signal is overloaded with two tasks - the first firing merely indicates that a new avatar is available (without actual pixmap yet available) while the second firing means that an actual pixmap has arrived (all this is entirely transparent for clients, they just should update their pixmaps from Room::avatar() every time when Room::avatarChanged() is emitted).
2017-10-26Move out the avatar code from UserKitsune Ral
Avatars are also a property of rooms, and the supporting code is basically the same. The only thing different will be emitted signals, and the cleanest thing to support that (aside from making Avatar a QObject) seems to be to parameterise the thumbnail-updating logic with a continuation invoked upon completion of the thumbnail job.
2017-10-19Don't log renamesKitsune Ral
This causes enormous traffic in the logs upon every startup when main.debug logs are on.
2017-10-17Fixed a blunder leading to users not having namesKitsune Ral
If all users suddenly don't have names, update to this commit, delete your cache and run again. Issue since 2bf912d6e6ddd9ff81a92ff28ac8c4c1d8f2d7e1.
2017-10-14Support of changing the display nameKitsune Ral
Note that although the mechanism is generic enough to change any user's display name, The Spec states that power rules are very strict about it.
2017-09-20User: no more croppedAvatar(); added avatarUrl() accessorKitsune Ral
avatarUrl() is not yet invokable from QML; I'm considering to make all the simple things in User Q_PROPERTies instead.
2017-09-15MediaThumbnailJob: get rid of useless pimpl; add scaledThumbnail()Kitsune Ral
Also use scaledThumbnail() in User::requestAvatar()
2017-06-07Split user's bridge (IRC, Gitter) into a separate field in user model objectRoman Plášil
2017-05-22CleanupKitsune Ral
2017-05-09Code cleanup and tweaking (partially driven by clang-tidy)Kitsune Ral
Mainly it's about const-ification (in particular, passing const-refs instead of values) and deleting unneeded declarations/#includes. Since the changes alter the external interface, this is submitted as a PR for peer review. One of unneeded declarations/definitions is a virtual destructor in BaseJob descendants. Since a job object should be deleted through QObject::deleteLater() anyway (and it's the only correct way of disposing of the object), all deletions will call the stack of destructors through virtual QObject::~QObject(). Therefore even BaseJob could get on with a non-virtual destructor but for the sake of clarity BaseJob::~BaseJob() is still declared virtual.
2017-04-30Port to categorized loggingElvis Angelaccio
This greatly reduces the noise made by quaternion. To enable full logging, export the following variable: QT_LOGGING_RULES="libqmatrixclient.*.debug=true"
2017-04-19Don't discard avatars as wellElvis Angelaccio
Same workaround as in commit 836f35dc7d, but this time also for avatars.
2017-04-17Don't discard user display names upon leave membership eventsElvis Angelaccio
Otherwise the following QJsonObject will discard a valid display name in RoomMemberEvent::fromJson(): QJsonObject({"content":{"membership":"leave"},"event_id":"$14905359301189950PoADM:matrix.org","membership":"leave","origin_server_ts":1490535930821,"sender":"@elvisangelaccio:matrix.org","state_key":"@elvisangelaccio:matrix.org","type":"m.room.member","unsigned":{"age":1887090448,"prev_content":{"avatar_url":"mxc://matrix.org/PuDxgBQfeplXbCQFvOGpTEmC","displayname":"eang","membership":"join"},"prev_sender":"@elvisangelaccio:matrix.org","replaces_state":"$14905358091189487gXwtE:matrix.org"}})
2017-03-26Provide a default avatarElvis Angelaccio
If the user doesn't have a custom avatar set, show a default avatar instead of nothing. This fixes a misalignment in the tableview between users with and without a custom avatar. Since libqmatrixclient doesn't recognize yet if a user is online or offline, just use the `user-available` standard [1] icon for now. [1]: https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.htmli
2016-10-26Introduce cropedAvatarMalte Brandy
2016-10-24Crop avatar to ensure it has exactly the wanted size; Fixes memory leak #54Malte Brandy
2016-10-14MediaThumbnailJob: Use QSize instead of two separate int's for sizeKitsune Ral
Connection::getThumbnail() is now overloaded to provide compatibility with the previous interface.
2016-07-12Added a missing #includeKitsune Ral
2016-05-27Enhance loggingKitsune Ral
1. Introduce QDebug manipulators and formatJson manipulator in particular - this allows to accommodate some changes in Qt's debug printing behaviour between versions. 2. Show JSON for some questionable objects (UnknownEvents, events with no event_id etc.) 3. Log the list of typing users and the user id when getting an avatar.
2016-05-06Use lambda captures instead of throwing job pointers aroundKitsune Ral
2016-05-02Supply more information with User::nameChanged signalKitsune Ral
2016-04-22Allow login with token.David A Roberts
2016-04-05Imported the current source tree from Quaternion/lib.Kitsune Ral