mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-27 15:05:19 +03:00
Avatar: Use QImage instead of QPixmap to avoid dep on QApplication.
That fixes the test suite.
This commit is contained in:
parent
e95b73dfac
commit
5e33898a08
7 changed files with 20 additions and 20 deletions
|
@ -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) );
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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<Account> _sharedThis;
|
||||
QString _id;
|
||||
QString _davUser;
|
||||
QPixmap _avatarPixmap;
|
||||
QImage _avatarImg;
|
||||
QMap<QString, QVariant> _settingsMap;
|
||||
QUrl _url;
|
||||
QList<QSslCertificate> _approvedCerts;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue