]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/windows/BrowserWindow.h
Block all CSP requests. https://redmine.stoutner.com/issues/1193
[PrivacyBrowserPC.git] / src / windows / BrowserWindow.h
index 85af5a2930d3bb6681bd22c9325a65f295b33048..525cb85a63e9a9c913a805548518542a4e64d7c6 100644 (file)
@@ -1,24 +1,24 @@
-/*
- * Copyright 2022-2024 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2022-2025 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
- * 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 <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-#ifndef BROWSERWINDOW_H
-#define BROWSERWINDOW_H
+#ifndef BROWSER_WINDOW_H
+#define BROWSER_WINDOW_H
 
 // Application headers.
 #include "widgets/TabWidget.h"
@@ -52,11 +52,13 @@ public:
 
 public Q_SLOTS:
     // The public slots.
+    void applyDomainSettingsInThisWindow();  // This is public so that the domain settings can be reapplied over D-Bus when changed by another instance of Privacy Browser.
     void populateBookmarksInThisWindow();  // This is public so that the bookmarks can be repopulated over D-Bus when changed by another instance of Privacy Browser.
 
 private Q_SLOTS:
     // The private slots.
     void addOrEditDomainSettings();
+    void applyDomainSettingsInAllWindows() const;
     void back() const;
     void clearUrlLineEditFocus() const;
     void decrementZoom();
@@ -73,14 +75,21 @@ private Q_SLOTS:
     void incrementZoom();
     void loadUrlFromLineEdit(const QString &url) const;
     void newWindow() const;
+    void openWithChromium() const;
+    void openWithFirefox() const;
     void populateBookmarksInAllWindows() const;
+    void processUrlTextChanges(const QString &newUrlText) const;
     void refresh() const;
     void reloadAndBypassCache() const;
+    void restoreUrlText() const;
+    void runMethodInAllWindows(const QString &methodString) const;
     void showBookmarkContextMenu(const QPoint &point);
     void showCookiesDialog();
     void showDomainSettingsDialog();
+    void showFilterListsDialog();
     void showFindTextActions() const;
     void showProgressBar(const int &progress) const;
+    void showRequestsDialog();
     void showSettingsDialog();
     void toggleBookmark();
     void toggleDeveloperTools() const;
@@ -100,17 +109,19 @@ private Q_SLOTS:
     void updateFindTextResults(const QWebEngineFindTextResult &findTextResult) const;
     void updateJavaScriptAction(const bool &isEnabled);
     void updateLocalStorageAction(const bool &isEnabled);
+    void updateRequestsAction(const QVector<int> blockedRequestsVector) const;
     void updateSearchEngineActions(const QString &searchEngine, const bool &updateCustomSearchEngineStatus);
     void updateUserAgentActions(const QString &userAgent, const bool &updateCustomUserAgentStatus);
-    void updateZoomActions(const double zoomFactorDouble);
     void updateUrlLineEdit(const QUrl &newUrl);
     void updateViewBookmarksToolBarCheckbox(const bool visible);
     void updateWindowTitle(const QString &title);
+    void updateZoomActions(const double zoomFactorDouble);
     void zoomDefault();
 
 private:
     // The private variables.
     KActionCollection *actionCollectionPointer;
+    QAction *blockedRequestsActionPointer;
     QAction *bookmarkedActionPointer;
     QList<QPair<QMenu *, QAction *> *> bookmarkFolderFinalActionList;
     QList<QPair<QMenu *, QAction *> *> bookmarksMenuActionList;
@@ -131,6 +142,10 @@ private:
     double defaultZoomFactorDouble;
     QAction *developerToolsActionPointer;
     QAction *domStorageActionPointer;
+    bool domainSettingsApplied = false;
+    QAction *easyPrivacyActionPointer;
+    QAction *easyListActionPointer;
+    QAction *fanboysAnnoyanceListPointer;
     QAction *findCaseSensitiveActionPointer;
     QAction *findNextActionPointer;
     QAction *findPreviousActionPointer;
@@ -138,6 +153,7 @@ private:
     QLabel *findTextLabelPointer;
     QAction *findTextLineEditActionPointer;
     KLineEdit *findTextLineEditPointer;
+    QAction *findTextSpacerActionPointer;
     KToggleFullScreenAction *fullScreenActionPointer;
     QAction *hideFindTextActionPointer;
     QAction *javaScriptActionPointer;
@@ -150,6 +166,8 @@ private:
     QPalette positiveBackgroundPalette;
     QProgressBar *progressBarPointer;
     QAction *refreshActionPointer;
+    QAction *requestsActionPointer;
+    QAction *restoreUrlTextActionPointer;
     QAction *searchEngineMenuActionPointer;
     QAction *searchEngineMojeekActionPointer;
     QAction *searchEngineMonoclesActionPointer;
@@ -159,6 +177,8 @@ private:
     QAction *searchEngineYahooActionPointer;
     QAction *searchEngineCustomActionPointer;
     QAction *stopActionPointer;
+    QAction *ultraPrivacyActionPointer;
+    QAction *ultraListActionPointer;
     QAction *userAgentMenuActionPointer;
     QAction *userAgentPrivacyBrowserActionPointer;
     QAction *userAgentWebEngineDefaultActionPointer;