summary refs log tree commit diff
path: root/src/JdenticonProvider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JdenticonProvider.cpp')
-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();