Adds class to retrieve icons.

- This is an attempt to cache the icons.

Signed-off-by: Camila San <hello@camila.codes>
This commit is contained in:
Camila San 2018-04-25 17:19:05 +02:00 committed by Roeland Jago Douma
parent 49377976db
commit 00a73b5ded
No known key found for this signature in database
GPG Key ID: F941078878347C0C
3 changed files with 89 additions and 0 deletions

View File

@ -102,6 +102,7 @@ set(client_SRCS
servernotificationhandler.cpp
guiutility.cpp
elidedlabel.cpp
iconjob.cpp
creds/credentialsfactory.cpp
creds/httpcredentialsgui.cpp
creds/oauth.cpp

41
src/gui/iconjob.cpp Normal file
View File

@ -0,0 +1,41 @@
/*
* Copyright (C) by Camila Ayres <hello@camila.codes>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
#include "iconjob.h"
namespace OCC {
IconJob::IconJob(const QUrl &url, QObject *parent) :
QObject(parent)
{
connect(&_accessManager, &QNetworkAccessManager::finished,
this, &IconJob::finished);
QNetworkRequest request(url);
_accessManager.get(request);
}
void IconJob::finished(QNetworkReply *reply)
{
if (reply->error() != QNetworkReply::NoError) {
qDebug() << reply->url() << " - " << reply->errorString();
return;
}
qDebug() << "Icon job finished for " << reply->url();
reply->deleteLater();
emit jobFinished(reply->readAll());
}
}

47
src/gui/iconjob.h Normal file
View File

@ -0,0 +1,47 @@
/*
* Copyright (C) by Camila Ayres <hello@camila.codes>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
#ifndef ICONJOB_H
#define ICONJOB_H
#include <QObject>
#include <QByteArray>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
namespace OCC {
/**
* @brief Job to fetch a icon
* @ingroup gui
*/
class IconJob : public QObject
{
Q_OBJECT
public:
explicit IconJob(const QUrl &url, QObject *parent = 0);
signals:
void jobFinished(QByteArray iconData);
private slots:
void finished(QNetworkReply *reply);
private:
QNetworkAccessManager _accessManager;
};
}
#endif // ICONJOB_H