summary refs log tree commit diff
path: root/src/ChatPage.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-08-26 01:24:56 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2019-08-26 08:51:56 +0200
commit52056a79fa94117ce0fc8f388458ceb48cc3be54 (patch)
tree3b9ff5a6466ffa6de1b88e49c9ced87d39df0c74 /src/ChatPage.cpp
parentFix SIGNAL SLOT issue on mtx types (diff)
downloadnheko-52056a79fa94117ce0fc8f388458ceb48cc3be54.tar.xz
Try to reduce memory usage by reusing avatar pixmaps
Diffstat (limited to 'src/ChatPage.cpp')
-rw-r--r--src/ChatPage.cpp38
1 files changed, 4 insertions, 34 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp
index 2ed64b6b..21ded4b3 100644
--- a/src/ChatPage.cpp
+++ b/src/ChatPage.cpp
@@ -774,12 +774,12 @@ ChatPage::bootstrap(QString userid, QString homeserver, QString token)
 }
 
 void
-ChatPage::updateTopBarAvatar(const QString &roomid, const QPixmap &img)
+ChatPage::updateTopBarAvatar(const QString &roomid, const QString &img)
 {
         if (current_room_ != roomid)
                 return;
 
-        top_bar_->updateRoomAvatar(img.toImage());
+        top_bar_->updateRoomAvatar(img);
 }
 
 void
@@ -807,7 +807,7 @@ ChatPage::changeTopRoomInfo(const QString &room_id)
                 if (img.isNull())
                         top_bar_->updateRoomAvatarFromName(name);
                 else
-                        top_bar_->updateRoomAvatar(img);
+                        top_bar_->updateRoomAvatar(avatar_url);
 
         } catch (const lmdb::error &e) {
                 nhlog::ui()->error("failed to change top bar room info: {}", e.what());
@@ -1337,37 +1337,7 @@ ChatPage::getProfileInfo()
 
                   emit setUserDisplayName(QString::fromStdString(res.display_name));
 
-                  if (cache::client()) {
-                          auto data = cache::client()->image(res.avatar_url);
-                          if (!data.isNull()) {
-                                  emit setUserAvatar(QImage::fromData(data));
-                                  return;
-                          }
-                  }
-
-                  if (res.avatar_url.empty())
-                          return;
-
-                  http::client()->download(
-                    res.avatar_url,
-                    [this, res](const std::string &data,
-                                const std::string &,
-                                const std::string &,
-                                mtx::http::RequestErr err) {
-                            if (err) {
-                                    nhlog::net()->warn(
-                                      "failed to download user avatar: {} - {}",
-                                      mtx::errors::to_string(err->matrix_error.errcode),
-                                      err->matrix_error.error);
-                                    return;
-                            }
-
-                            if (cache::client())
-                                    cache::client()->saveImage(res.avatar_url, data);
-
-                            emit setUserAvatar(
-                              QImage::fromData(QByteArray(data.data(), data.size())));
-                    });
+                  emit setUserAvatar(QString::fromStdString(res.avatar_url));
           });
 
         http::client()->joined_groups(