Skip to content
Snippets Groups Projects
Commit dcdf00dc authored by Loren Burkholder's avatar Loren Burkholder
Browse files

Finish fixing rounded avatars

parent 350fc593
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,25 @@
#include "Utils.h"
#include "jdenticoninterface.h"
static QPixmap
clipRadius(QPixmap img, double radius)
{
QPixmap out(img.size());
out.fill(Qt::transparent);
QPainter painter(&out);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
QPainterPath ppath;
ppath.addRoundedRect(img.rect(), radius, radius, Qt::SizeMode::RelativeSize);
painter.setClipPath(ppath);
painter.drawPixmap(img.rect(), img);
return out;
}
JdenticonResponse::JdenticonResponse(const QString &key,
bool crop,
double radius,
......@@ -37,19 +56,20 @@ void
JdenticonResponse::run()
{
m_pixmap.fill(Qt::transparent);
QPainter painter{&m_pixmap};
QPainter painter;
painter.begin(&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()};
renderer.render(&painter);
painter.end();
m_pixmap = clipRadius(m_pixmap, m_radius);
emit finished();
}
......@@ -64,7 +84,7 @@ getJdenticonInterface()
bool plugins = pluginsDir.cd("plugins");
if (plugins) {
for (QString fileName : pluginsDir.entryList(QDir::Files)) {
for (const QString &fileName : pluginsDir.entryList(QDir::Files)) {
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
QObject *plugin = pluginLoader.instance();
if (plugin) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment