]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/widgets/PrivacyWebEngineView.h
Implement opening web pages in other browsers. https://redmine.stoutner.com/issues...
[PrivacyBrowserPC.git] / src / widgets / PrivacyWebEngineView.h
index 152c56e84f515c5979df2e26fb8b5b6f316dc40f..f68a7559be60d8d1778c62e0b4d619450f53998a 100644 (file)
@@ -1,7 +1,7 @@
 /*
 /*
- * Copyright 2022-2023 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2022-2024 Soren Stoutner <soren@stoutner.com>.
  *
  *
- * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
  *
  * Privacy Browser PC is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  * Privacy Browser PC is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * along with Privacy Browser PC.  If not, see <http://www.gnu.org/licenses/>.
  */
 
  * along with Privacy Browser PC.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef PRIVACYWEBENGINEVIEW_H
-#define PRIVACYWEBENGINEVIEW_H
+#ifndef PRIVACY_WEBENGINE_VIEW_H
+#define PRIVACY_WEBENGINE_VIEW_H
+
+// Application headers.
+#include "structs/RequestStruct.h"
+
+// KDE framework headers.
+#include <KLineEdit>
 
 // Qt toolkit headers.
 
 // Qt toolkit headers.
+#include <QIcon>
+#include <QList>
 #include <QNetworkCookie>
 #include <QWebEngineFindTextResult>
 #include <QWebEngineView>
 #include <QNetworkCookie>
 #include <QWebEngineFindTextResult>
 #include <QWebEngineView>
@@ -32,23 +40,44 @@ class PrivacyWebEngineView : public QWebEngineView
 
 public:
     // The default constructor.
 
 public:
     // The default constructor.
-    explicit PrivacyWebEngineView();
+    explicit PrivacyWebEngineView(QWidget *parentWidgetPointer = nullptr);
+
+    // The public static constants.
+    static const int ULTRAPRIVACY = 0;
+    static const int ULTRALIST = 1;
+    static const int EASYPRIVACY = 2;
+    static const int EASYLIST = 3;
+    static const int FANBOYS_ANNOYANCE_LIST = 4;
+    static const int TOTAL = 5;
 
     // The public variables.
 
     // The public variables.
+    QVector<int> blockedRequestsVector = {0, 0, 0, 0, 0, 0};
     std::list<QNetworkCookie> *cookieListPointer = new std::list<QNetworkCookie>;
     std::list<QNetworkCookie> *cookieListPointer = new std::list<QNetworkCookie>;
-    QString domainSettingsName = QStringLiteral("");
+    double defaultZoomFactor = 1.00;
+    QString domainSettingsName = QLatin1String("");
+    bool easyListEnabled = true;
+    bool easyPrivacyEnabled = true;
+    bool fanboysAnnoyanceListEnabled = true;
+    QIcon favoriteIcon = QIcon::fromTheme(QLatin1String("globe"), QIcon::fromTheme(QLatin1String("applications-internet")));
     bool findCaseSensitive = false;
     bool findCaseSensitive = false;
-    QString findString = QStringLiteral("");
+    QString findString = QLatin1String("");
     QWebEngineFindTextResult findTextResult = QWebEngineFindTextResult();
     QWebEngineFindTextResult findTextResult = QWebEngineFindTextResult();
+    int httpAuthenticationDialogsDisplayed = 0;
+    bool isLoading = false;
     int loadProgressInt = -1;
     bool localStorageEnabled = false;
     int loadProgressInt = -1;
     bool localStorageEnabled = false;
+    QList<RequestStruct *> *requestsListPointer = new QList<RequestStruct *>;
+    bool ultraListEnabled = true;
+    bool ultraPrivacyEnabled = true;
 
     // The public functions.
     void applyDomainSettings(const QString &hostname, const bool reloadWebsite);
 
 signals:
     // The signals.
 
     // The public functions.
     void applyDomainSettings(const QString &hostname, const bool reloadWebsite);
 
 signals:
     // The signals.
-    void updateCookiesAction(const int numberOfCookies) const;
+    void numberOfCookiesChanged(const int numberOfCookies) const;
+    void displayHttpPingBlockedDialog(const QString &httpPingUrl) const;
+    void requestBlocked(const QVector<int> blockedRequestsVector) const;
     void updateUi(const PrivacyWebEngineView *privacyWebEngineViewPointer) const;
 
 public Q_SLOTS:
     void updateUi(const PrivacyWebEngineView *privacyWebEngineViewPointer) const;
 
 public Q_SLOTS:
@@ -59,9 +88,15 @@ public Q_SLOTS:
 private Q_SLOTS:
     // The private slots.
     void applyDomainSettingsWithoutReloading(const QString &hostname);
 private Q_SLOTS:
     // The private slots.
     void applyDomainSettingsWithoutReloading(const QString &hostname);
+    void clearRequestsList();
+    void displayHttpPingDialog(const QString &httpPingUrl) const;
+    void handleAuthenticationRequest(const QUrl &requestUrl, QAuthenticator *authenticatorPointer);
+    void storeRequest(RequestStruct *requestStructPointer);
 
 private:
     // The private variables.
 
 private:
     // The private variables.
+    KLineEdit *passwordLineEditPointer;
+    KLineEdit *usernameLineEditPointer;
     QWebEngineProfile *webEngineProfilePointer;
     QWebEngineSettings *webEngineSettingsPointer;
 
     QWebEngineProfile *webEngineProfilePointer;
     QWebEngineSettings *webEngineSettingsPointer;