summary refs log tree commit diff
path: root/src/JdenticonProvider.cpp
diff options
context:
space:
mode:
authorLoren Burkholder <computersemiexpert@outlook.com>2021-08-13 20:05:51 -0400
committerLoren Burkholder <computersemiexpert@outlook.com>2021-09-11 19:35:31 -0400
commit350d1977af35ee9cc59f4912593c4083a64dc7d1 (patch)
tree4dcb21772c9b26051a546a14a4a845613f07aa5c /src/JdenticonProvider.cpp
parentGet direct chat jdenticons to line up (diff)
downloadnheko-350d1977af35ee9cc59f4912593c4083a64dc7d1.tar.xz
Add some fancy effects to jdenticon
Diffstat (limited to '')
-rw-r--r--src/JdenticonProvider.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/JdenticonProvider.cpp b/src/JdenticonProvider.cpp

index fd7ee137..5495b2d3 100644 --- a/src/JdenticonProvider.cpp +++ b/src/JdenticonProvider.cpp
@@ -7,6 +7,7 @@ #include <QApplication> #include <QDir> #include <QPainter> +#include <QPainterPath> #include <QPluginLoader> #include <QSvgRenderer> @@ -18,8 +19,13 @@ #include "Utils.h" #include "jdenticoninterface.h" -JdenticonResponse::JdenticonResponse(const QString &key, const QSize &requestedSize) +JdenticonResponse::JdenticonResponse(const QString &key, + bool crop, + double radius, + const QSize &requestedSize) : m_key(key) + , m_crop{crop} + , m_radius{radius} , m_requestedSize(requestedSize.isValid() ? requestedSize : QSize(100, 100)) , m_pixmap{m_requestedSize} , jdenticonInterface_{Jdenticon::getJdenticonInterface()} @@ -32,10 +38,16 @@ JdenticonResponse::run() { m_pixmap.fill(Qt::transparent); QPainter painter{&m_pixmap}; + painter.setRenderHint(QPainter::Antialiasing, true); + painter.setRenderHint(QPainter::SmoothPixmapTransform, true); + + QPainterPath ppath; + ppath.addRoundedRect(m_pixmap.rect(), m_radius, m_radius); + + painter.setClipPath(ppath); + QSvgRenderer renderer{ jdenticonInterface_->generate(m_key, m_requestedSize.width()).toUtf8()}; - // m_image = QImage::fromData(jdenticonInterface_->generate(m_key, - // size->width()).toUtf8()); renderer.render(&painter); emit finished();