summary refs log tree commit diff
path: root/src/ui/Avatar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/Avatar.cpp')
-rw-r--r--src/ui/Avatar.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/ui/Avatar.cpp b/src/ui/Avatar.cpp

index 98bf21c6..501a8968 100644 --- a/src/ui/Avatar.cpp +++ b/src/ui/Avatar.cpp
@@ -1,4 +1,5 @@ #include <QPainter> +#include <QSettings> #include "AvatarProvider.h" #include "Utils.h" @@ -100,6 +101,8 @@ Avatar::setIcon(const QIcon &icon) void Avatar::paintEvent(QPaintEvent *) { + bool rounded = QSettings().value("user/avatar/circles", true).toBool(); + QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); @@ -113,7 +116,8 @@ 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, 3, 3); } switch (type_) { @@ -126,7 +130,10 @@ 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, 3, 3); + painter.setClipPath(ppath); painter.drawPixmap(QRect(width() / 2 - hs, height() / 2 - hs, size_, size_), pixmap_);