summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAidan Hahn <aidan@aidanis.online>2019-08-27 23:31:04 -0700
committerAidan Hahn <aidan@aidanis.online>2019-08-27 23:31:04 -0700
commit26002bf0e4f2422adc4df5b93f5f83a227c2c2ae (patch)
treec239926ba2c811096ec62455fede79ee9a7bb7bf /src
parentFix SIGNAL SLOT issue on mtx types (diff)
downloadnheko-26002bf0e4f2422adc4df5b93f5f83a227c2c2ae.tar.xz
added logic in avatar class to determine rounding type
Diffstat (limited to 'src')
-rw-r--r--src/ui/Avatar.cpp28
-rw-r--r--src/ui/Avatar.h2
2 files changed, 25 insertions, 5 deletions
diff --git a/src/ui/Avatar.cpp b/src/ui/Avatar.cpp
index 4b4cd272..94e330f6 100644
--- a/src/ui/Avatar.cpp
+++ b/src/ui/Avatar.cpp
@@ -3,12 +3,15 @@
 #include "Utils.h"
 #include "ui/Avatar.h"
 
+#define AVATAR_RECT_ROUND 5
+
 Avatar::Avatar(QWidget *parent)
   : QWidget(parent)
 {
-        size_   = ui::AvatarSize;
-        type_   = ui::AvatarType::Letter;
-        letter_ = "A";
+        size_    = ui::AvatarSize;
+        type_    = ui::AvatarType::Letter;
+        letter_  = "A";
+        rounded_ = true;
 
         QFont _font(font());
         _font.setPointSizeF(ui::FontSize);
@@ -101,6 +104,11 @@ Avatar::setIcon(const QIcon &icon)
 }
 
 void
+Avatar::rounded(bool setting)
+{
+        rounded_ = setting;
+}
+
 Avatar::paintEvent(QPaintEvent *)
 {
         QPainter painter(this);
@@ -116,7 +124,11 @@ Avatar::paintEvent(QPaintEvent *)
 
                 painter.setPen(Qt::NoPen);
                 painter.setBrush(brush);
-                painter.drawEllipse(r.center(), hs, hs);
+                rounded_ ?
+                  painter.drawEllipse(r.center(), hs, hs) :
+                  painter.drawRoundedRect( r,
+                                           AVATAR_RECT_ROUND,
+                                           AVATAR_RECT_ROUND);
         }
 
         switch (type_) {
@@ -129,7 +141,13 @@ Avatar::paintEvent(QPaintEvent *)
         }
         case ui::AvatarType::Image: {
                 QPainterPath ppath;
-                ppath.addEllipse(width() / 2 - hs, height() / 2 - hs, size_, size_);
+
+                rounded_ ?
+                  ppath.addEllipse(width() / 2 - hs, height() / 2 - hs, size_, size_) :
+                  ppath.addRoundedRect( r,
+                                        AVATAR_RECT_ROUND,
+                                        AVATAR_RECT_ROUND);
+
                 painter.setClipPath(ppath);
                 painter.drawPixmap(QRect(width() / 2 - hs, height() / 2 - hs, size_, size_),
                                    pixmap_);
diff --git a/src/ui/Avatar.h b/src/ui/Avatar.h
index 41967af5..4df94456 100644
--- a/src/ui/Avatar.h
+++ b/src/ui/Avatar.h
@@ -23,6 +23,7 @@ public:
         void setLetter(const QString &letter);
         void setSize(int size);
         void setTextColor(const QColor &color);
+        void rounded(bool setting);
 
         QColor backgroundColor() const;
         QColor textColor() const;
@@ -44,4 +45,5 @@ private:
         QImage image_;
         QPixmap pixmap_;
         int size_;
+        bool rounded_;
 };