summary refs log tree commit diff
diff options
context:
space:
mode:
authorLoren Burkholder <computersemiexpert@outlook.com>2021-07-24 09:16:29 -0400
committerLoren Burkholder <computersemiexpert@outlook.com>2021-07-29 21:07:52 -0400
commit8a329d65174d091a5c4d1542d0e74c7d576ee3c6 (patch)
treebb584fae9d72e8c235d8a22dabb14e829730a4a0
parentSimplify read receipt storage (diff)
downloadnheko-8a329d65174d091a5c4d1542d0e74c7d576ee3c6.tar.xz
Remove Avatar class
RIP
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/MemberList.cpp1
-rw-r--r--src/MemberList.h3
-rw-r--r--src/ui/Avatar.cpp168
-rw-r--r--src/ui/Avatar.h48
5 files changed, 2 insertions, 220 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9371579..8fc8e19d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -304,7 +304,6 @@ set(SRC_FILES
 	src/timeline/RoomlistModel.cpp
 
 	# UI components
-	src/ui/Avatar.cpp
 	src/ui/Badge.cpp
 	src/ui/DropShadow.cpp
 	src/ui/FlatButton.cpp
@@ -516,7 +515,6 @@ qt5_wrap_cpp(MOC_HEADERS
 	src/timeline/RoomlistModel.h
 
 	# UI components
-	src/ui/Avatar.h
 	src/ui/Badge.h
 	src/ui/FlatButton.h
 	src/ui/FloatingButton.h
diff --git a/src/MemberList.cpp b/src/MemberList.cpp
index 0ef3b696..fb4f5ac2 100644
--- a/src/MemberList.cpp
+++ b/src/MemberList.cpp
@@ -20,7 +20,6 @@
 #include "Logging.h"
 #include "Utils.h"
 #include "timeline/TimelineViewManager.h"
-#include "ui/Avatar.h"
 
 MemberList::MemberList(const QString &room_id, QObject *parent)
   : QAbstractListModel{parent}
diff --git a/src/MemberList.h b/src/MemberList.h
index 9932f6a4..e6522694 100644
--- a/src/MemberList.h
+++ b/src/MemberList.h
@@ -4,9 +4,10 @@
 
 #pragma once
 
-#include "CacheStructs.h"
 #include <QAbstractListModel>
 
+#include "CacheStructs.h"
+
 class MemberList : public QAbstractListModel
 {
         Q_OBJECT
diff --git a/src/ui/Avatar.cpp b/src/ui/Avatar.cpp
deleted file mode 100644
index 154a0e2c..00000000
--- a/src/ui/Avatar.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-// SPDX-FileCopyrightText: 2021 Nheko Contributors
-//
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include <QPainter>
-#include <QPainterPath>
-#include <QSettings>
-
-#include "AvatarProvider.h"
-#include "Utils.h"
-#include "ui/Avatar.h"
-
-Avatar::Avatar(QWidget *parent, int size)
-  : QWidget(parent)
-  , size_(size)
-{
-        type_   = ui::AvatarType::Letter;
-        letter_ = "A";
-
-        QFont _font(font());
-        _font.setPointSizeF(ui::FontSize);
-        setFont(_font);
-
-        QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
-        setSizePolicy(policy);
-}
-
-QColor
-Avatar::textColor() const
-{
-        if (!text_color_.isValid())
-                return QColor("black");
-
-        return text_color_;
-}
-
-QColor
-Avatar::backgroundColor() const
-{
-        if (!text_color_.isValid())
-                return QColor("white");
-
-        return background_color_;
-}
-
-QSize
-Avatar::sizeHint() const
-{
-        return QSize(size_ + 2, size_ + 2);
-}
-
-void
-Avatar::setTextColor(const QColor &color)
-{
-        text_color_ = color;
-}
-
-void
-Avatar::setBackgroundColor(const QColor &color)
-{
-        background_color_ = color;
-}
-
-void
-Avatar::setLetter(const QString &letter)
-{
-        letter_ = letter;
-        type_   = ui::AvatarType::Letter;
-        update();
-}
-
-void
-Avatar::setImage(const QString &avatar_url)
-{
-        avatar_url_ = avatar_url;
-        AvatarProvider::resolve(avatar_url,
-                                static_cast<int>(size_ * pixmap_.devicePixelRatio()),
-                                this,
-                                [this, requestedRatio = pixmap_.devicePixelRatio()](QPixmap pm) {
-                                        if (pm.isNull())
-                                                return;
-                                        type_   = ui::AvatarType::Image;
-                                        pixmap_ = pm;
-                                        pixmap_.setDevicePixelRatio(requestedRatio);
-                                        update();
-                                });
-}
-
-void
-Avatar::setImage(const QString &room, const QString &user)
-{
-        room_ = room;
-        user_ = user;
-        AvatarProvider::resolve(room,
-                                user,
-                                static_cast<int>(size_ * pixmap_.devicePixelRatio()),
-                                this,
-                                [this, requestedRatio = pixmap_.devicePixelRatio()](QPixmap pm) {
-                                        if (pm.isNull())
-                                                return;
-                                        type_   = ui::AvatarType::Image;
-                                        pixmap_ = pm;
-                                        pixmap_.setDevicePixelRatio(requestedRatio);
-                                        update();
-                                });
-}
-
-void
-Avatar::setDevicePixelRatio(double ratio)
-{
-        if (type_ == ui::AvatarType::Image && abs(pixmap_.devicePixelRatio() - ratio) > 0.01) {
-                pixmap_ = pixmap_.scaled(QSize(size_, size_) * ratio);
-                pixmap_.setDevicePixelRatio(ratio);
-
-                if (!avatar_url_.isEmpty())
-                        setImage(avatar_url_);
-                else
-                        setImage(room_, user_);
-        }
-}
-
-void
-Avatar::paintEvent(QPaintEvent *)
-{
-        bool rounded = QSettings().value(QStringLiteral("user/avatar_circles"), true).toBool();
-
-        QPainter painter(this);
-
-        painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform |
-                               QPainter::TextAntialiasing);
-
-        QRectF r     = rect();
-        const int hs = size_ / 2;
-
-        if (type_ != ui::AvatarType::Image) {
-                QBrush brush;
-                brush.setStyle(Qt::SolidPattern);
-                brush.setColor(backgroundColor());
-
-                painter.setPen(Qt::NoPen);
-                painter.setBrush(brush);
-                rounded ? painter.drawEllipse(r) : painter.drawRoundedRect(r, 3, 3);
-        } else if (painter.isActive()) {
-                setDevicePixelRatio(painter.device()->devicePixelRatioF());
-        }
-
-        switch (type_) {
-        case ui::AvatarType::Image: {
-                QPainterPath ppath;
-
-                rounded ? ppath.addEllipse(width() / 2 - hs, height() / 2 - hs, size_, size_)
-                        : ppath.addRoundedRect(r, 3, 3);
-
-                painter.setClipPath(ppath);
-                painter.drawPixmap(QRect(width() / 2 - hs, height() / 2 - hs, size_, size_),
-                                   pixmap_);
-                break;
-        }
-        case ui::AvatarType::Letter: {
-                painter.setPen(textColor());
-                painter.setBrush(Qt::NoBrush);
-                painter.drawText(r.translated(0, -1), Qt::AlignCenter, letter_);
-                break;
-        }
-        default:
-                break;
-        }
-}
diff --git a/src/ui/Avatar.h b/src/ui/Avatar.h
deleted file mode 100644
index bbf05be3..00000000
--- a/src/ui/Avatar.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// SPDX-FileCopyrightText: 2021 Nheko Contributors
-//
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include <QImage>
-#include <QPixmap>
-#include <QWidget>
-
-#include "Theme.h"
-
-class Avatar : public QWidget
-{
-        Q_OBJECT
-
-        Q_PROPERTY(QColor textColor WRITE setTextColor READ textColor)
-        Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor)
-
-public:
-        explicit Avatar(QWidget *parent = nullptr, int size = ui::AvatarSize);
-
-        void setBackgroundColor(const QColor &color);
-        void setImage(const QString &avatar_url);
-        void setImage(const QString &room, const QString &user);
-        void setLetter(const QString &letter);
-        void setTextColor(const QColor &color);
-        void setDevicePixelRatio(double ratio);
-
-        QColor backgroundColor() const;
-        QColor textColor() const;
-
-        QSize sizeHint() const override;
-
-protected:
-        void paintEvent(QPaintEvent *event) override;
-
-private:
-        void init();
-
-        ui::AvatarType type_;
-        QString letter_;
-        QString avatar_url_, room_, user_;
-        QColor background_color_;
-        QColor text_color_;
-        QPixmap pixmap_;
-        int size_;
-};