Skip to content

Commit

Permalink
Avatar: don't paint on null images; optimise initial placeholder gene…
Browse files Browse the repository at this point in the history
…ration
  • Loading branch information
KitsuneRal committed Sep 9, 2018
1 parent 9c9401e commit 3dfcd0f
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions lib/avatar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,14 @@ QImage Avatar::Private::get(Connection* connection, QSize size,
if (callback)
callbacks.emplace_back(move(callback));
_thumbnailRequest = connection->getThumbnail(_url, size);
if (_originalImage.isNull() && !_defaultIcon.isNull())
{
_originalImage = QImage(_defaultIcon.actualSize(size),
QImage::Format_ARGB32_Premultiplied);
_originalImage.fill(Qt::transparent);
QPainter p { &_originalImage };
_defaultIcon.paint(&p, { QPoint(), _defaultIcon.actualSize(size) });
}
QObject::connect( _thumbnailRequest, &MediaThumbnailJob::success,
_thumbnailRequest, [this] {
_fetched = true;
Expand All @@ -138,15 +146,6 @@ QImage Avatar::Private::get(Connection* connection, QSize size,
});
}

if( _originalImage.isNull() )
{
if (_defaultIcon.isNull())
return _originalImage;

QPainter p { &_originalImage };
_defaultIcon.paint(&p, { QPoint(), _defaultIcon.actualSize(size) });
}

for (const auto& p: _scaledImages)
if (p.first == size)
return p.second;
Expand Down

0 comments on commit 3dfcd0f

Please sign in to comment.