From: Matthieu Gallien Date: Wed, 17 Nov 2021 09:36:05 +0000 (+0100) Subject: add a network access factory to qml engine X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~18^2~95^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=12c6d6e3bdf3fa15c963630d6d7abd268476038f;p=nextcloud-desktop.git add a network access factory to qml engine ensure network access made via qml are using our user agent Signed-off-by: Matthieu Gallien --- diff --git a/src/gui/systray.cpp b/src/gui/systray.cpp index 475367486..707609612 100644 --- a/src/gui/systray.cpp +++ b/src/gui/systray.cpp @@ -22,6 +22,7 @@ #include "wheelhandler.h" #include "tray/unifiedsearchresultimageprovider.h" #include "configfile.h" +#include "accessmanager.h" #include #include @@ -59,6 +60,8 @@ void Systray::setTrayEngine(QQmlApplicationEngine *trayEngine) { _trayEngine = trayEngine; + _trayEngine->setNetworkAccessManagerFactory(&_accessManagerFactory); + _trayEngine->addImportPath("qrc:/qml/theme"); _trayEngine->addImageProvider("avatars", new ImageProvider); _trayEngine->addImageProvider(QLatin1String("svgimage-custom-color"), new OCC::Ui::SvgImageProvider); @@ -505,4 +508,14 @@ QPoint Systray::calcTrayIconCenter() const #endif } +AccessManagerFactory::AccessManagerFactory() + : QQmlNetworkAccessManagerFactory() +{ +} + +QNetworkAccessManager* AccessManagerFactory::create(QObject *parent) +{ + return new AccessManager(parent); +} + } // namespace OCC diff --git a/src/gui/systray.h b/src/gui/systray.h index 70917aaab..31251d01e 100644 --- a/src/gui/systray.h +++ b/src/gui/systray.h @@ -20,6 +20,8 @@ #include "accountmanager.h" #include "tray/usermodel.h" +#include + class QScreen; class QQmlApplicationEngine; class QQuickWindow; @@ -28,6 +30,14 @@ class QQuickWindow; namespace OCC { +class AccessManagerFactory : public QQmlNetworkAccessManagerFactory +{ +public: + AccessManagerFactory(); + + QNetworkAccessManager* create(QObject *parent) override; +}; + #ifdef Q_OS_OSX bool canOsXSendUserNotification(); void sendOsXUserNotification(const QString &title, const QString &message); @@ -105,6 +115,8 @@ private: bool _isOpen = false; bool _syncIsPaused = true; QPointer _trayEngine; + + AccessManagerFactory _accessManagerFactory; }; } // namespace OCC