summary refs log tree commit diff
path: root/src/ui
diff options
context:
space:
mode:
authorAidan Hahn <aidan@aidanis.online>2019-09-01 16:32:09 -0700
committerAidan Hahn <aidan@aidanis.online>2019-09-01 16:32:09 -0700
commita38f3903551aa79908b053557d9ad3be0e7f0f25 (patch)
treed6d8c62b8739ae07ed30e989ffd5609acae86f11 /src/ui
parentremoved leftovers from previous refactor (diff)
parentMerge pull request #86 from Nheko-Reborn/avatar-memory-usage (diff)
downloadnheko-a38f3903551aa79908b053557d9ad3be0e7f0f25.tar.xz
Merge branch '0.7.0-dev' of https://github.com/Nheko-Reborn/nheko into 0.7.0-dev-bugfix-71
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/Avatar.cpp43
-rw-r--r--src/ui/Avatar.h7
2 files changed, 23 insertions, 27 deletions
diff --git a/src/ui/Avatar.cpp b/src/ui/Avatar.cpp

index df649e1b..51068424 100644 --- a/src/ui/Avatar.cpp +++ b/src/ui/Avatar.cpp
@@ -1,15 +1,16 @@ #include <QPainter> #include <QSettings> +#include "AvatarProvider.h" #include "Utils.h" #include "ui/Avatar.h" -Avatar::Avatar(QWidget *parent) +Avatar::Avatar(QWidget *parent, int size) : QWidget(parent) + , size_(size) { - size_ = ui::AvatarSize; - type_ = ui::AvatarType::Letter; - letter_ = "A"; + type_ = ui::AvatarType::Letter; + letter_ = "A"; QFont _font(font()); _font.setPointSizeF(ui::FontSize); @@ -62,35 +63,31 @@ Avatar::setBackgroundColor(const QColor &color) } void -Avatar::setSize(int size) +Avatar::setLetter(const QString &letter) { - size_ = size; - - if (!image_.isNull()) - pixmap_ = utils::scaleImageToPixmap(image_, size_); - - QFont _font(font()); - _font.setPointSizeF(size_ * (ui::FontSize) / 40); - - setFont(_font); + letter_ = letter; + type_ = ui::AvatarType::Letter; update(); } void -Avatar::setLetter(const QString &letter) +Avatar::setImage(const QString &avatar_url) { - letter_ = letter; - type_ = ui::AvatarType::Letter; - update(); + AvatarProvider::resolve(avatar_url, size_, this, [this](QPixmap pm) { + type_ = ui::AvatarType::Image; + pixmap_ = pm; + update(); + }); } void -Avatar::setImage(const QImage &image) +Avatar::setImage(const QString &room, const QString &user) { - image_ = image; - type_ = ui::AvatarType::Image; - pixmap_ = utils::scaleImageToPixmap(image_, size_); - update(); + AvatarProvider::resolve(room, user, size_, this, [this](QPixmap pm) { + type_ = ui::AvatarType::Image; + pixmap_ = pm; + update(); + }); } void diff --git a/src/ui/Avatar.h b/src/ui/Avatar.h
index 41967af5..a643c8c4 100644 --- a/src/ui/Avatar.h +++ b/src/ui/Avatar.h
@@ -15,13 +15,13 @@ class Avatar : public QWidget Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor) public: - explicit Avatar(QWidget *parent = 0); + explicit Avatar(QWidget *parent = 0, int size = ui::AvatarSize); void setBackgroundColor(const QColor &color); void setIcon(const QIcon &icon); - void setImage(const QImage &image); + void setImage(const QString &avatar_url); + void setImage(const QString &room, const QString &user); void setLetter(const QString &letter); - void setSize(int size); void setTextColor(const QColor &color); QColor backgroundColor() const; @@ -41,7 +41,6 @@ private: QColor background_color_; QColor text_color_; QIcon icon_; - QImage image_; QPixmap pixmap_; int size_; };