diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 92f99a96c6..3c95d925f8 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -102,6 +102,7 @@ set(client_SRCS servernotificationhandler.cpp guiutility.cpp elidedlabel.cpp + iconjob.cpp creds/credentialsfactory.cpp creds/httpcredentialsgui.cpp creds/oauth.cpp diff --git a/src/gui/iconjob.cpp b/src/gui/iconjob.cpp new file mode 100644 index 0000000000..decd9a211a --- /dev/null +++ b/src/gui/iconjob.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (C) by Camila Ayres + * + * 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()); +} +} diff --git a/src/gui/iconjob.h b/src/gui/iconjob.h new file mode 100644 index 0000000000..1ad1078906 --- /dev/null +++ b/src/gui/iconjob.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) by Camila Ayres + * + * 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 +#include +#include +#include +#include + +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