From: Felix Weilbach Date: Tue, 9 Nov 2021 10:58:33 +0000 (+0100) Subject: IconJob: Send request through the accounts NAS X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~18^2~117^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3e368ee4df68b34b1a61e50266080697210dbf89;p=nextcloud-desktop.git IconJob: Send request through the accounts NAS This helps tracking requests on the server Signed-off-by: Felix Weilbach --- diff --git a/src/gui/tray/notificationhandler.cpp b/src/gui/tray/notificationhandler.cpp index 2bb4b7ef6..b21f7e8e1 100644 --- a/src/gui/tray/notificationhandler.cpp +++ b/src/gui/tray/notificationhandler.cpp @@ -113,7 +113,7 @@ void ServerNotificationHandler::slotNotificationsReceived(const QJsonDocument &j a._icon = json.value("icon").toString(); if (!a._icon.isEmpty()) { - auto *iconJob = new IconJob(QUrl(a._icon)); + auto *iconJob = new IconJob(_accountState->account(), QUrl(a._icon)); iconJob->setProperty("activityId", a._id); connect(iconJob, &IconJob::jobFinished, this, &ServerNotificationHandler::slotIconDownloaded); } diff --git a/src/libsync/iconjob.cpp b/src/libsync/iconjob.cpp index 0c9017125..23a7ace7f 100644 --- a/src/libsync/iconjob.cpp +++ b/src/libsync/iconjob.cpp @@ -16,22 +16,23 @@ namespace OCC { -IconJob::IconJob(const QUrl &url, QObject *parent) : - QObject(parent) +IconJob::IconJob(AccountPtr account, const QUrl &url, QObject *parent) + : QObject(parent) { - connect(&_accessManager, &QNetworkAccessManager::finished, - this, &IconJob::finished); - QNetworkRequest request(url); #if (QT_VERSION >= 0x050600) request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); #endif - _accessManager.get(request); + const auto reply = account->sendRawRequest(QByteArrayLiteral("GET"), url, request); + connect(reply, &QNetworkReply::finished, this, &IconJob::finished); } -void IconJob::finished(QNetworkReply *reply) +void IconJob::finished() { - reply->deleteLater(); + const auto reply = qobject_cast(sender()); + if (!reply) { + return; + } deleteLater(); const auto networkError = reply->error(); diff --git a/src/libsync/iconjob.h b/src/libsync/iconjob.h index 719ea3be4..dcb036956 100644 --- a/src/libsync/iconjob.h +++ b/src/libsync/iconjob.h @@ -15,6 +15,8 @@ #ifndef ICONJOB_H #define ICONJOB_H +#include "account.h" +#include "accountfwd.h" #include "owncloudlib.h" #include @@ -33,17 +35,14 @@ class OWNCLOUDSYNC_EXPORT IconJob : public QObject { Q_OBJECT public: - explicit IconJob(const QUrl &url, QObject *parent = nullptr); + explicit IconJob(AccountPtr account, const QUrl &url, QObject *parent = nullptr); signals: void jobFinished(QByteArray iconData); void error(QNetworkReply::NetworkError errorType); private slots: - void finished(QNetworkReply *reply); - -private: - QNetworkAccessManager _accessManager; + void finished(); }; } diff --git a/src/libsync/ocsprofileconnector.cpp b/src/libsync/ocsprofileconnector.cpp index 5bda93cc4..c24d5f85f 100644 --- a/src/libsync/ocsprofileconnector.cpp +++ b/src/libsync/ocsprofileconnector.cpp @@ -145,7 +145,7 @@ void OcsProfileConnector::loadHovercardActionIcon(const std::size_t hovercardAct void OcsProfileConnector::startFetchIconJob(const std::size_t hovercardActionIndex) { const auto hovercardAction = _currentHovercard._actions[hovercardActionIndex]; - const auto iconJob = new IconJob{hovercardAction._iconUrl, this}; + const auto iconJob = new IconJob{_account, hovercardAction._iconUrl, this}; connect(iconJob, &IconJob::jobFinished, [this, hovercardActionIndex](QByteArray iconData) { loadHovercardActionIcon(hovercardActionIndex, iconData); }); connect(iconJob, &IconJob::error, this, [](QNetworkReply::NetworkError errorType) {