#ifndef NAM_H_ #define NAM_H_ #include #include #include /** * Block certain requests based on URL */ class SlxNetworkAccessManager : public QNetworkAccessManager { Q_OBJECT public: SlxNetworkAccessManager(QRegularExpression blackList, QRegularExpression whiteList, QObject *parent = nullptr) : QNetworkAccessManager(parent), _black(blackList), _white(whiteList) {} protected: QNetworkReply* createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr) override; private: QRegularExpression _black, _white; }; class SlxDisabledNetworkReply : public QNetworkReply { Q_OBJECT public: SlxDisabledNetworkReply(QObject *parent, const QNetworkRequest &req, QNetworkAccessManager::Operation op); ~SlxDisabledNetworkReply() {} void abort() override { } protected: qint64 readData(char *, qint64) override { return -1; } }; #endif