From 5e33898a08b9b1b415562569793c9eef123a7d27 Mon Sep 17 00:00:00 2001 From: Klaas Freitag Date: Thu, 9 Mar 2017 22:34:36 +0100 Subject: [PATCH] Avatar: Use QImage instead of QPixmap to avoid dep on QApplication. That fixes the test suite. --- src/gui/settingsdialog.cpp | 8 ++++---- src/libsync/account.cpp | 8 ++++---- src/libsync/account.h | 6 +++--- src/libsync/connectionvalidator.cpp | 6 +++--- src/libsync/connectionvalidator.h | 4 ++-- src/libsync/networkjobs.cpp | 6 +++--- src/libsync/networkjobs.h | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 173466a52..0deab3687 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -56,7 +56,7 @@ namespace { namespace OCC { -static QIcon circleMask( const QPixmap& avatar ) +static QIcon circleMask( const QImage& avatar ) { int dim = avatar.width(); @@ -67,7 +67,7 @@ static QIcon circleMask( const QPixmap& avatar ) QPainterPath clip; clip.addEllipse(0, 0, dim, dim); imgPainter.setClipPath(clip); - imgPainter.drawPixmap(0, 0, dim, dim, avatar); + imgPainter.drawImage(0, 0, avatar); imgPainter.end(); return QIcon(fixedImage); @@ -216,7 +216,7 @@ void SettingsDialog::accountAdded(AccountState *s) bool brandingSingleAccount = !Theme::instance()->multiAccount(); QAction *accountAction; - QPixmap avatar = s->account()->avatar(); + QImage avatar = s->account()->avatar(); const QString actionText = brandingSingleAccount ? tr("Account") : s->account()->displayName(); if(avatar.isNull()) { accountAction = createColorAwareAction(QLatin1String(":/client/resources/account.png"), @@ -251,7 +251,7 @@ void SettingsDialog::slotAccountAvatarChanged() if( account && _actionForAccount.contains(account)) { QAction *action = _actionForAccount[account]; if( action ) { - QPixmap pix = account->avatar(); + QImage pix = account->avatar(); if( !pix.isNull() ) { action->setIcon( circleMask(pix) ); } diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp index ad4ca60f4..06634056d 100644 --- a/src/libsync/account.cpp +++ b/src/libsync/account.cpp @@ -90,13 +90,13 @@ void Account::setDavUser(const QString &newDavUser) _davUser = newDavUser; } -QPixmap Account::avatar() const +QImage Account::avatar() const { - return _avatarPixmap; + return _avatarImg; } -void Account::setAvatar(const QPixmap& pixmap) +void Account::setAvatar(const QImage &img) { - _avatarPixmap = pixmap; + _avatarImg = img; emit accountChangedAvatar(); } diff --git a/src/libsync/account.h b/src/libsync/account.h index a4894a6e9..4b61efb2e 100644 --- a/src/libsync/account.h +++ b/src/libsync/account.h @@ -80,8 +80,8 @@ public: QString davUser() const; void setDavUser(const QString &newDavUser); - QPixmap avatar() const; - void setAvatar(const QPixmap& pixmap); + QImage avatar() const; + void setAvatar(const QImage& img); /// The name of the account as shown in the toolbar QString displayName() const; @@ -216,7 +216,7 @@ private: QWeakPointer _sharedThis; QString _id; QString _davUser; - QPixmap _avatarPixmap; + QImage _avatarImg; QMap _settingsMap; QUrl _url; QList _approvedCerts; diff --git a/src/libsync/connectionvalidator.cpp b/src/libsync/connectionvalidator.cpp index 2a0efab2e..7e63bb538 100644 --- a/src/libsync/connectionvalidator.cpp +++ b/src/libsync/connectionvalidator.cpp @@ -256,15 +256,15 @@ void ConnectionValidator::slotUserFetched(const QVariantMap &json) AvatarJob *job = new AvatarJob(_account, this); job->setTimeout(20*1000); - QObject::connect(job, SIGNAL(avatarPixmap(QPixmap)), this, SLOT(slotAvatarPixmap(QPixmap))); + QObject::connect(job, SIGNAL(avatarPixmap(QImage)), this, SLOT(slotAvatarImage(QImage))); job->start(); } } -void ConnectionValidator::slotAvatarPixmap(const QPixmap& pixmap) +void ConnectionValidator::slotAvatarImage(const QImage& img) { - _account->setAvatar(pixmap); + _account->setAvatar(img); reportResult(Connected); } diff --git a/src/libsync/connectionvalidator.h b/src/libsync/connectionvalidator.h index f9ad88160..a612b6182 100644 --- a/src/libsync/connectionvalidator.h +++ b/src/libsync/connectionvalidator.h @@ -71,7 +71,7 @@ namespace OCC { +-> slotUserFetched AvatarJob | - +-> slotAvatarPixmap --> reportResult() + +-> slotAvatarImage --> reportResult() \endcode */ @@ -122,7 +122,7 @@ protected slots: void slotCapabilitiesRecieved(const QVariantMap&); void slotUserFetched(const QVariantMap &); - void slotAvatarPixmap(const QPixmap&); + void slotAvatarImage(const QImage &img); private: void reportResult(Status status); diff --git a/src/libsync/networkjobs.cpp b/src/libsync/networkjobs.cpp index 5568105d9..f89da5e6a 100644 --- a/src/libsync/networkjobs.cpp +++ b/src/libsync/networkjobs.cpp @@ -608,19 +608,19 @@ bool AvatarJob::finished() { int http_result_code = reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); - QPixmap avPixmap; + QImage avImage; if (http_result_code == 200) { QByteArray pngData = reply()->readAll(); if( pngData.size() ) { - if( avPixmap.loadFromData(pngData) ) { + if( avImage.loadFromData(pngData) ) { qDebug() << "Retrieved Avatar pixmap!"; } } } - emit(avatarPixmap(avPixmap)); + emit(avatarPixmap(avImage)); return true; } diff --git a/src/libsync/networkjobs.h b/src/libsync/networkjobs.h index 2493be31d..6802c5d2b 100644 --- a/src/libsync/networkjobs.h +++ b/src/libsync/networkjobs.h @@ -150,7 +150,7 @@ signals: * @brief avatarPixmap - returns either a valid pixmap or not. */ - void avatarPixmap(QPixmap); + void avatarPixmap(QImage); private slots: virtual bool finished() Q_DECL_OVERRIDE;