X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwidgets%2FPrivacyWebEngineView.h;h=95cc69f5b67d8397b030c27a6f987c5d8e7fc715;hb=refs%2Fheads%2Fmaster;hp=c227f428ee2bd1a0aab6a0b89a8708f2a6335519;hpb=aa9a6b20db5e2c808b390b62704f28bd649e283c;p=PrivacyBrowserPC.git diff --git a/src/widgets/PrivacyWebEngineView.h b/src/widgets/PrivacyWebEngineView.h index c227f42..984d972 100644 --- a/src/widgets/PrivacyWebEngineView.h +++ b/src/widgets/PrivacyWebEngineView.h @@ -1,26 +1,34 @@ -/* - * Copyright © 2022 Soren Stoutner . +/* SPDX-License-Identifier: GPL-3.0-or-later + * SPDX-FileCopyrightText: 2022-2025 Soren Stoutner * - * This file is part of Privacy Browser PC . + * This file is part of 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 - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * 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 3 of the License, or (at your option) any later + * version. * - * Privacy Browser PC 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. + * 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. * - * You should have received a copy of the GNU General Public License - * along with Privacy Browser PC. If not, see . + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . */ -#ifndef PRIVACYWEBENGINEVIEW_H -#define PRIVACYWEBENGINEVIEW_H +#ifndef PRIVACY_WEBENGINE_VIEW_H +#define PRIVACY_WEBENGINE_VIEW_H -// Qt toolkit headers. +// Application headers. +#include "structs/RequestStruct.h" + +// KDE framework headers. +#include + +// Qt framework headers. +#include +#include #include #include #include @@ -32,28 +40,75 @@ class PrivacyWebEngineView : public QWebEngineView 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. + QVector blockedRequestsVector = {0, 0, 0, 0, 0, 0}; std::list *cookieListPointer = new std::list; - QString domainSettingsName = QStringLiteral(""); + QString currentHost = QLatin1String(""); + QString currentUrlText = QLatin1String(""); + 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; - QString findString = QStringLiteral(""); + QString findString = QLatin1String(""); QWebEngineFindTextResult findTextResult = QWebEngineFindTextResult(); + int httpAuthenticationDialogsDisplayed = 0; + bool isLoading = false; int loadProgressInt = -1; bool localStorageEnabled = false; + QList *requestsListPointer = new QList; + bool ultraListEnabled = true; + bool ultraPrivacyEnabled = true; -signals: +Q_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 blockedRequestsVector) const; + void updateUi(const PrivacyWebEngineView *privacyWebEngineViewPointer) const; public Q_SLOTS: // The public slots. void addCookieToList(const QNetworkCookie &cookie) const; + void applyDomainSettings(const QUrl &newUrl, const bool navigatingHistory); void removeCookieFromList(const QNetworkCookie &cookie) const; +private Q_SLOTS: + // The private slots. + void clearRequestsList(); + void displayHttpPingDialog(const QString &httpPingUrl) const; + void handleAuthenticationRequest(const QUrl &requestUrl, QAuthenticator *authenticatorPointer); + void manualOpenInNewTab(); + void openWithChromium() const; + void openWithFirefox() const; + void saveHoveredLink(const QString &hoveredLink); + void storeRequest(RequestStruct *requestStructPointer); + void storeUpdatedUrl(const QUrl &newUrl); + +private: + // The private variables. + QString hoveredLinkString; + bool manuallyOpeninginNewTab = false; + KLineEdit *passwordLineEditPointer; + KLineEdit *usernameLineEditPointer; + QWebEngineProfile *webEngineProfilePointer; + QWebEngineSettings *webEngineSettingsPointer; + protected: // The protected functions. + void contextMenuEvent(QContextMenuEvent *contextMenuEvent) override; QWebEngineView* createWindow(QWebEnginePage::WebWindowType webWindowType) override; }; #endif