aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/avatar.cpp24
-rw-r--r--lib/avatar.h4
-rw-r--r--lib/user.cpp4
3 files changed, 10 insertions, 22 deletions
diff --git a/lib/avatar.cpp b/lib/avatar.cpp
index be9b6a78..438268b6 100644
--- a/lib/avatar.cpp
+++ b/lib/avatar.cpp
@@ -33,16 +33,14 @@ using std::move;
class Avatar::Private
{
public:
- explicit Private(QIcon di, QUrl url = {})
- : _defaultIcon(move(di)), _url(move(url))
- { }
+ explicit Private(QUrl url = {}) : _url(move(url)) { }
+
QImage get(Connection* connection, QSize size,
get_callback_t callback) const;
bool upload(UploadContentJob* job, upload_callback_t callback);
bool checkUrl(QUrl url) const;
- const QIcon _defaultIcon;
QUrl _url;
// The below are related to image caching, hence mutable
@@ -56,12 +54,12 @@ class Avatar::Private
mutable std::vector<get_callback_t> callbacks;
};
-Avatar::Avatar(QIcon defaultIcon)
- : d(std::make_unique<Private>(std::move(defaultIcon)))
+Avatar::Avatar()
+ : d(std::make_unique<Private>())
{ }
-Avatar::Avatar(QUrl url, QIcon defaultIcon)
- : d(std::make_unique<Private>(std::move(defaultIcon), std::move(url)))
+Avatar::Avatar(QUrl url)
+ : d(std::make_unique<Private>(std::move(url)))
{ }
Avatar::Avatar(Avatar&&) = default;
@@ -126,14 +124,6 @@ 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;
@@ -149,7 +139,7 @@ QImage Avatar::Private::get(Connection* connection, QSize size,
for (const auto& p: _scaledImages)
if (p.first == size)
return p.second;
- auto result = _originalImage.scaled(size,
+ auto result = _originalImage.isNull() ? QImage() : _originalImage.scaled(size,
Qt::KeepAspectRatio, Qt::SmoothTransformation);
_scaledImages.emplace_back(size, result);
return result;
diff --git a/lib/avatar.h b/lib/avatar.h
index 0166ae9e..c86345e3 100644
--- a/lib/avatar.h
+++ b/lib/avatar.h
@@ -31,8 +31,8 @@ namespace QMatrixClient
class Avatar
{
public:
- explicit Avatar(QIcon defaultIcon = {});
- explicit Avatar(QUrl url, QIcon defaultIcon = {});
+ explicit Avatar();
+ explicit Avatar(QUrl url);
Avatar(Avatar&&);
~Avatar();
Avatar& operator=(Avatar&&);
diff --git a/lib/user.cpp b/lib/user.cpp
index b9f493c5..eec08ad9 100644
--- a/lib/user.cpp
+++ b/lib/user.cpp
@@ -44,9 +44,7 @@ class User::Private
public:
static Avatar makeAvatar(QUrl url)
{
- static const QIcon icon
- { QIcon::fromTheme(QStringLiteral("user-available")) };
- return Avatar(move(url), icon);
+ return Avatar(move(url));
}
Private(QString userId, Connection* connection)