diff --git a/src/RoomList.cc b/src/RoomList.cc
index e7c5ef30..d3ed2e66 100644
--- a/src/RoomList.cc
+++ b/src/RoomList.cc
@@ -16,11 +16,11 @@
*/
#include <QBuffer>
-#include <QDebug>
#include <QObject>
#include <QTimer>
#include "Cache.h"
+#include "Logging.hpp"
#include "MainWindow.h"
#include "MatrixClient.h"
#include "OverlayModal.h"
@@ -55,18 +55,7 @@ RoomList::RoomList(QSharedPointer<UserSettings> userSettings, QWidget *parent)
scrollArea_->setWidget(scrollAreaContents_);
topLayout_->addWidget(scrollArea_);
- connect(http::client(),
- &MatrixClient::roomAvatarRetrieved,
- this,
- [this](const QString &room_id,
- const QPixmap &img,
- const QString &url,
- const QByteArray &data) {
- if (cache::client())
- cache::client()->saveImage(url, data);
-
- updateRoomAvatar(room_id, img);
- });
+ connect(this, &RoomList::updateRoomAvatarCb, this, &RoomList::updateRoomAvatar);
}
void
@@ -101,7 +90,28 @@ RoomList::updateAvatar(const QString &room_id, const QString &url)
savedImgData = cache::client()->image(url);
if (savedImgData.isEmpty()) {
- http::client()->fetchRoomAvatar(room_id, url);
+ mtx::http::ThumbOpts opts;
+ opts.mxc_url = url.toStdString();
+ http::v2::client()->get_thumbnail(
+ opts, [room_id, opts, this](const std::string &res, mtx::http::RequestErr err) {
+ if (err) {
+ log::net()->warn(
+ "failed to download thumbnail: {}, {} - {}",
+ opts.mxc_url,
+ mtx::errors::to_string(err->matrix_error.errcode),
+ err->matrix_error.error);
+ return;
+ }
+
+ if (cache::client())
+ cache::client()->saveImage(opts.mxc_url, res);
+
+ auto data = QByteArray(res.data(), res.size());
+ QPixmap pixmap;
+ pixmap.loadFromData(data);
+
+ emit updateRoomAvatarCb(room_id, pixmap);
+ });
} else {
QPixmap img;
img.loadFromData(savedImgData);
@@ -131,7 +141,8 @@ void
RoomList::updateUnreadMessageCount(const QString &roomid, int count)
{
if (!roomExists(roomid)) {
- qWarning() << "UpdateUnreadMessageCount: Unknown roomid";
+ log::main()->warn("updateUnreadMessageCount: unknown room_id {}",
+ roomid.toStdString());
return;
}
@@ -156,7 +167,7 @@ RoomList::calculateUnreadMessageCount()
void
RoomList::initialize(const QMap<QString, RoomInfo> &info)
{
- qDebug() << "initialize room list";
+ log::main()->info("initialize room list");
rooms_.clear();
@@ -209,7 +220,7 @@ RoomList::highlightSelectedRoom(const QString &room_id)
emit roomChanged(room_id);
if (!roomExists(room_id)) {
- qDebug() << "RoomList: clicked unknown roomid";
+ log::main()->warn("roomlist: clicked unknown room_id");
return;
}
@@ -232,7 +243,8 @@ void
RoomList::updateRoomAvatar(const QString &roomid, const QPixmap &img)
{
if (!roomExists(roomid)) {
- qWarning() << "Avatar update on non existent room" << roomid;
+ log::main()->warn("avatar update on non-existent room_id: {}",
+ roomid.toStdString());
return;
}
@@ -246,7 +258,9 @@ void
RoomList::updateRoomDescription(const QString &roomid, const DescInfo &info)
{
if (!roomExists(roomid)) {
- qWarning() << "Description update on non existent room" << roomid << info.body;
+ log::main()->warn("description update on non-existent room_id: {}, {}",
+ roomid.toStdString(),
+ info.body.toStdString());
return;
}
@@ -314,7 +328,7 @@ RoomList::closeJoinRoomDialog(bool isJoining, QString roomAlias)
joinRoomModal_->hide();
if (isJoining)
- http::client()->joinRoom(roomAlias);
+ emit joinRoom(roomAlias);
}
void
|