]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/commitdiff
Concatonate the applied entry lists with four spaces instead of `*`. https://redmine... master
authorSoren Stoutner <soren@stoutner.com>
Thu, 11 Sep 2025 22:29:43 +0000 (15:29 -0700)
committerSoren Stoutner <soren@stoutner.com>
Thu, 11 Sep 2025 22:29:43 +0000 (15:29 -0700)
12 files changed:
src/dialogs/FilterListsDialog.cpp
src/dialogs/FilterListsDialog.h
src/dialogs/RequestDetailDialog.cpp
src/dialogs/RequestsDialog.cpp
src/helpers/FilterListHelper.cpp
src/helpers/FilterListHelper.h
src/structs/EntryStruct.h [deleted file]
src/structs/FilterListEntryStruct.h [new file with mode: 0644]
src/structs/FilterListStruct.h
src/structs/FilterOptionsOverrideStruct.h [new file with mode: 0644]
src/structs/OverrideStruct.h [deleted file]
src/structs/RequestStruct.h

index faf3b49d88265c007bc2bb18124f08e5378bfb90..f30dfb6f5e60501f240c66e0742abe7c3ab9627c 100644 (file)
@@ -71,7 +71,7 @@ FilterListsDialog::FilterListsDialog(QWidget *parentWidgetPointer) : QDialog(par
     populateFilterListComboBox(globalFilterListHelperPointer->fanboyAnnoyanceStructPointer);
 }
 
-std::forward_list<EntryStruct *>* FilterListsDialog::getFilterListForwardList(FilterListStruct *filterListStructPointer) const
+std::forward_list<FilterListEntryStruct *>* FilterListsDialog::getFilterListForwardList(FilterListStruct *filterListStructPointer) const
 {
     // Return the filter list forward list.
     switch (sublistComboBoxPointer->currentIndex())
@@ -85,7 +85,7 @@ std::forward_list<EntryStruct *>* FilterListsDialog::getFilterListForwardList(Fi
     }
 
     // This return statement should never be reached.
-    return new std::forward_list<EntryStruct *>;
+    return new std::forward_list<FilterListEntryStruct *>;
 }
 
 FilterListStruct *FilterListsDialog::getFilterListStruct(int filterListComboBoxIndex) const
@@ -169,7 +169,7 @@ void FilterListsDialog::populateTableWidget(int sublistComboBoxIndex) const
         FilterListStruct *filterListStructPointer = getFilterListStruct(filterListComboBoxPointer->currentIndex());
 
         // Create a filter list forward list.
-        std::forward_list<EntryStruct *> *filterListForwardListPointer;
+        std::forward_list<FilterListEntryStruct *> *filterListForwardListPointer;
 
         // Populate the filter list forward list.
         switch (sublistComboBoxIndex)
@@ -256,34 +256,34 @@ void FilterListsDialog::populateTableWidget(int sublistComboBoxIndex) const
         // Populate the table.
         for (auto filterListEntry = filterListForwardListPointer->begin(); filterListEntry != filterListForwardListPointer->end(); ++filterListEntry) {
             // Get the entry struct.
-            EntryStruct *entryStructPointer = *filterListEntry;
+            FilterListEntryStruct *filterListEntryStructPointer = *filterListEntry;
 
             // Add a new row.
             sublistTableWidgetPointer->insertRow(rowCounter);
 
             // Create the entry items.
-            QTableWidgetItem *appliedEntryListItemPointer = new QTableWidgetItem(entryStructPointer->appliedEntryList.join(QLatin1String(" * ")));
-            QTableWidgetItem *initialMatchItemPointer = new QTableWidgetItem(entryStructPointer->initialMatch ? i18n("Yes") : QLatin1String());
-            QTableWidgetItem *finalMatchItemPointer = new QTableWidgetItem(entryStructPointer->finalMatch ? i18n("Yes") : QLatin1String());
-            QTableWidgetItem *domainItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->domain));
-            QTableWidgetItem *domainListItemPointer = new QTableWidgetItem(entryStructPointer->domainList.join(QLatin1String(" | ")));
-            QTableWidgetItem *thirdPartyItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->thirdParty));
-            QTableWidgetItem *hasRequestOptionsItemPointer = new QTableWidgetItem(entryStructPointer->hasRequestOptions ? i18n("Yes") : QLatin1String());
-            QTableWidgetItem *fontItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->font));
-            QTableWidgetItem *imageItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->image));
-            QTableWidgetItem *mainFrameItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->mainFrame));
-            QTableWidgetItem *mediaItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->media));
-            QTableWidgetItem *objectItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->object));
-            QTableWidgetItem *otherItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->other));
-            QTableWidgetItem *pingItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->ping));
-            QTableWidgetItem *scriptItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->script));
-            QTableWidgetItem *styleSheetItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->styleSheet));
-            QTableWidgetItem *subFrameItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->subFrame));
-            QTableWidgetItem *webSocketItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->webSocket));
-            QTableWidgetItem *xmlHttpRequestItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(entryStructPointer->xmlHttpRequest));
-            QTableWidgetItem *appliedFilterOptionsItemPointer = new QTableWidgetItem(entryStructPointer->appliedFilterOptionsList.join(QLatin1String(" , ")));
-            QTableWidgetItem *originalFilterOptionsItemPointer = new QTableWidgetItem(entryStructPointer->originalFilterOptions);
-            QTableWidgetItem *originalEntryItemPointer = new QTableWidgetItem(entryStructPointer->originalEntry);
+            QTableWidgetItem *appliedEntryListItemPointer = new QTableWidgetItem(filterListEntryStructPointer->appliedEntryList.join(QLatin1String("    ")));
+            QTableWidgetItem *initialMatchItemPointer = new QTableWidgetItem(filterListEntryStructPointer->initialMatch ? i18n("Yes") : QLatin1String());
+            QTableWidgetItem *finalMatchItemPointer = new QTableWidgetItem(filterListEntryStructPointer->finalMatch ? i18n("Yes") : QLatin1String());
+            QTableWidgetItem *domainItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->domain));
+            QTableWidgetItem *domainListItemPointer = new QTableWidgetItem(filterListEntryStructPointer->domainList.join(QLatin1String(" | ")));
+            QTableWidgetItem *thirdPartyItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->thirdParty));
+            QTableWidgetItem *hasRequestOptionsItemPointer = new QTableWidgetItem(filterListEntryStructPointer->hasRequestOptions ? i18n("Yes") : QLatin1String());
+            QTableWidgetItem *fontItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->font));
+            QTableWidgetItem *imageItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->image));
+            QTableWidgetItem *mainFrameItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->mainFrame));
+            QTableWidgetItem *mediaItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->media));
+            QTableWidgetItem *objectItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->object));
+            QTableWidgetItem *otherItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->other));
+            QTableWidgetItem *pingItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->ping));
+            QTableWidgetItem *scriptItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->script));
+            QTableWidgetItem *styleSheetItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->styleSheet));
+            QTableWidgetItem *subFrameItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->subFrame));
+            QTableWidgetItem *webSocketItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->webSocket));
+            QTableWidgetItem *xmlHttpRequestItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getRequestOptionDispositionString(filterListEntryStructPointer->xmlHttpRequest));
+            QTableWidgetItem *appliedFilterOptionsItemPointer = new QTableWidgetItem(filterListEntryStructPointer->appliedFilterOptionsList.join(QLatin1String(" , ")));
+            QTableWidgetItem *originalFilterOptionsItemPointer = new QTableWidgetItem(filterListEntryStructPointer->originalFilterOptionsString);
+            QTableWidgetItem *originalEntryItemPointer = new QTableWidgetItem(filterListEntryStructPointer->originalEntryString);
 
             // Add the entries to the table.
             sublistTableWidgetPointer->setItem(rowCounter, 0, appliedEntryListItemPointer);
index f04b9bb7e84155de79e1a443ff5ee6fd6b107901..c23938a07ec1b845c43336c7df3385f29f2d0521 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2024 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
  *
  * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
  *
@@ -52,7 +52,7 @@ private:
     QTableWidget *sublistTableWidgetPointer;
 
     // The private functions.
-    std::forward_list<EntryStruct *>* getFilterListForwardList(FilterListStruct *filterListStructPointer) const;
+    std::forward_list<FilterListEntryStruct *>* getFilterListForwardList(FilterListStruct *filterListStructPointer) const;
     FilterListStruct* getFilterListStruct(int filterListComboBoxIndex) const;
     void populateFilterListComboBox(const FilterListStruct *filterListStructPointer) const;
 };
index 2b723863271aa09e15dd82d21aa6c833cc2d829d..6775569f876c62fd10a91bb1a904179760235760 100644 (file)
@@ -146,28 +146,28 @@ void RequestDetailDialog::populateDialog(const int row)
 
     // Populate the new request struct.  The order needs to match how the data stream is populated in RequestsDialog.cpp.
     requestStructDataStreamReader >> requestStructPointer->dispositionInt;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.originalEntry;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.originalFilterOptions;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.appliedEntryList;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.appliedFilterOptionsList;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.domainList;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.finalMatch;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.hasRequestOptions;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.initialMatch;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.domain;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.font;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.image;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.mainFrame;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.media;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.object;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.other;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.ping;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.script;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.styleSheet;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.subFrame;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.thirdParty;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.webSocket;
-    requestStructDataStreamReader >> requestStructPointer->entryStruct.xmlHttpRequest;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.originalEntryString;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.originalFilterOptionsString;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.appliedEntryList;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.appliedFilterOptionsList;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.domainList;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.finalMatch;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.hasRequestOptions;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.initialMatch;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.domain;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.font;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.image;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.mainFrame;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.media;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.object;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.other;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.ping;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.script;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.styleSheet;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.subFrame;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.thirdParty;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.webSocket;
+    requestStructDataStreamReader >> requestStructPointer->filterListEntryStruct.xmlHttpRequest;
     requestStructDataStreamReader >> requestStructPointer->filterListTitle;
     requestStructDataStreamReader >> requestStructPointer->isThirdPartyRequest;
     requestStructDataStreamReader >> requestStructPointer->matchedUrlType;
@@ -182,7 +182,7 @@ void RequestDetailDialog::populateDialog(const int row)
     requestStructDataStreamReader >> requestStructPointer->webPageUrlString;
 
     // Make a local copy of the has request options boolean.
-    bool hasRequestOptions = requestStructPointer->entryStruct.hasRequestOptions;
+    bool hasRequestOptions = requestStructPointer->filterListEntryStruct.hasRequestOptions;
 
     // Populate the views.
     dispositionLineEditPointer->setText(globalFilterListHelperPointer->getDispositionString(requestStructPointer->dispositionInt));
@@ -197,28 +197,28 @@ void RequestDetailDialog::populateDialog(const int row)
     resourceTypeLineEditPointer->setText(globalFilterListHelperPointer->getResourceTypeString(requestStructPointer->resourceTypeInt));
     filterListLineEditPointer->setText(requestStructPointer->filterListTitle);
     sublistLineEditPointer->setText(globalFilterListHelperPointer->getSublistName(requestStructPointer->sublistInt));
-    appliedEntryListLineEditPointer->setText(requestStructPointer->entryStruct.appliedEntryList.join(QLatin1String(" * ")));
-    domainLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.domain));
-    thirdPartyFilterLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.thirdParty));
-    initialMatchLineEditPointer->setText(requestStructPointer->entryStruct.initialMatch ? i18n("Yes") : QLatin1String());
-    finalMatchLineEditPointer->setText(requestStructPointer->entryStruct.finalMatch ? i18n("Yes") : QLatin1String());
-    domainListLineEditPointer->setText(requestStructPointer->entryStruct.domainList.join(QLatin1String(" | ")));
+    appliedEntryListLineEditPointer->setText(requestStructPointer->filterListEntryStruct.appliedEntryList.join(QLatin1String(" * ")));
+    domainLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.domain));
+    thirdPartyFilterLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.thirdParty));
+    initialMatchLineEditPointer->setText(requestStructPointer->filterListEntryStruct.initialMatch ? i18n("Yes") : QLatin1String());
+    finalMatchLineEditPointer->setText(requestStructPointer->filterListEntryStruct.finalMatch ? i18n("Yes") : QLatin1String());
+    domainListLineEditPointer->setText(requestStructPointer->filterListEntryStruct.domainList.join(QLatin1String(" | ")));
     hasRequestOptionsCheckBoxPointer->setChecked(hasRequestOptions);
-    fontLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.font));
-    imageLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.image));
-    mainFrameLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.mainFrame));
-    mediaLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.media));
-    objectLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.object));
-    otherLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.other));
-    pingLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.ping));
-    scriptLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.script));
-    styleSheetLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.styleSheet));
-    subFrameLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.subFrame));
-    webSocketLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.webSocket));
-    xmlHttpRequestLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->entryStruct.xmlHttpRequest));
-    appliedFilterOptionsLineEditPointer->setText(requestStructPointer->entryStruct.appliedFilterOptionsList.join(QLatin1String(" , ")));
-    originalFilterOptionsLineEditPointer->setText(requestStructPointer->entryStruct.originalFilterOptions);
-    originalEntryLineEditPointer->setText(requestStructPointer->entryStruct.originalEntry);
+    fontLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.font));
+    imageLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.image));
+    mainFrameLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.mainFrame));
+    mediaLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.media));
+    objectLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.object));
+    otherLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.other));
+    pingLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.ping));
+    scriptLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.script));
+    styleSheetLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.styleSheet));
+    subFrameLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.subFrame));
+    webSocketLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.webSocket));
+    xmlHttpRequestLineEditPointer->setText(globalFilterListHelperPointer->getRequestOptionDispositionString(requestStructPointer->filterListEntryStruct.xmlHttpRequest));
+    appliedFilterOptionsLineEditPointer->setText(requestStructPointer->filterListEntryStruct.appliedFilterOptionsList.join(QLatin1String(" , ")));
+    originalFilterOptionsLineEditPointer->setText(requestStructPointer->filterListEntryStruct.originalFilterOptionsString);
+    originalEntryLineEditPointer->setText(requestStructPointer->filterListEntryStruct.originalEntryString);
 
     // Determine if this is an allow list, which have a sublist int of of 0-2.
     isAllowList = (requestStructPointer->sublistInt <= 2);
index 452b898a6e4caafdd815d0543362391f448fd522..1dc15efcc0894be4d9128c9d457d67266a7dd374 100644 (file)
@@ -97,28 +97,28 @@ RequestsDialog::RequestsDialog(QWidget *parentWidgetPointer, QList<RequestStruct
 
         // Populate the request struct data stream.  The order needs to match what is populated from the data stream in RequestDetailDialog.cpp.
         requestStructDataStream << requestStructPointer->dispositionInt;
-        requestStructDataStream << requestStructPointer->entryStruct.originalEntry;
-        requestStructDataStream << requestStructPointer->entryStruct.originalFilterOptions;
-        requestStructDataStream << requestStructPointer->entryStruct.appliedEntryList;
-        requestStructDataStream << requestStructPointer->entryStruct.appliedFilterOptionsList;
-        requestStructDataStream << requestStructPointer->entryStruct.domainList;
-        requestStructDataStream << requestStructPointer->entryStruct.finalMatch;
-        requestStructDataStream << requestStructPointer->entryStruct.hasRequestOptions;
-        requestStructDataStream << requestStructPointer->entryStruct.initialMatch;
-        requestStructDataStream << requestStructPointer->entryStruct.domain;
-        requestStructDataStream << requestStructPointer->entryStruct.font;
-        requestStructDataStream << requestStructPointer->entryStruct.image;
-        requestStructDataStream << requestStructPointer->entryStruct.mainFrame;
-        requestStructDataStream << requestStructPointer->entryStruct.media;
-        requestStructDataStream << requestStructPointer->entryStruct.object;
-        requestStructDataStream << requestStructPointer->entryStruct.other;
-        requestStructDataStream << requestStructPointer->entryStruct.ping;
-        requestStructDataStream << requestStructPointer->entryStruct.script;
-        requestStructDataStream << requestStructPointer->entryStruct.styleSheet;
-        requestStructDataStream << requestStructPointer->entryStruct.subFrame;
-        requestStructDataStream << requestStructPointer->entryStruct.thirdParty;
-        requestStructDataStream << requestStructPointer->entryStruct.webSocket;
-        requestStructDataStream << requestStructPointer->entryStruct.xmlHttpRequest;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.originalEntryString;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.originalFilterOptionsString;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.appliedEntryList;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.appliedFilterOptionsList;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.domainList;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.finalMatch;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.hasRequestOptions;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.initialMatch;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.domain;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.font;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.image;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.mainFrame;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.media;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.object;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.other;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.ping;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.script;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.styleSheet;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.subFrame;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.thirdParty;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.webSocket;
+        requestStructDataStream << requestStructPointer->filterListEntryStruct.xmlHttpRequest;
         requestStructDataStream << requestStructPointer->filterListTitle;
         requestStructDataStream << requestStructPointer->isThirdPartyRequest;
         requestStructDataStream << requestStructPointer->matchedUrlType;
index 0f81e0df2961d1503cc1bfbdba4ac115824e9da7..d782c249eb65412b2c5649602ac68c99c5935106 100644 (file)
@@ -19,7 +19,7 @@
 
 // Application headers.
 #include "FilterListHelper.h"
-#include "structs/OverrideStruct.h"
+#include "structs/FilterOptionsOverrideStruct.h"
 
 // KDE Framework headers.
 #include <KLocalizedString>
@@ -123,7 +123,7 @@ bool FilterListHelper::checkFilterLists(PrivacyWebEngineView *privacyWebEngineVi
     requestStructPointer->urlStringWithSeparators.replace(QLatin1Char('='), QLatin1Char('^'));
     requestStructPointer->urlStringWithSeparators.replace(QLatin1Char('&'), QLatin1Char('^'));
 
-    // Add a `^` to the end of the string it it doesn't already contain one.
+    // Add a `^` to the end of the string if it doesn't already contain one.
     if (!requestStructPointer->urlStringWithSeparators.endsWith(QLatin1Char('^')))
         requestStructPointer->urlStringWithSeparators.append(QLatin1Char('^'));
 
@@ -172,17 +172,17 @@ bool FilterListHelper::checkIndividualList(QWebEngineUrlRequestInfo &urlRequestI
     // Check the main allow list.
     while (continueChecking && (mainAllowListEntry != mainAllowListEnd))
     {
-        // Get the entry struct.
-        EntryStruct *entryStructPointer = *mainAllowListEntry;
+        // Get the filter list entry struct.
+        FilterListEntryStruct *filterListEntryStructPointer = *mainAllowListEntry;
 
         // Check the applied entry against the request URL.
         continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, MAIN_ALLOWLIST, requestStructPointer->urlString,
-                                             RequestUrlType::Url, entryStructPointer);
+                                             RequestUrlType::Url, filterListEntryStructPointer);
 
         // Check the applied entry against the request URL with separators.
         if (continueChecking)
             continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, MAIN_ALLOWLIST, requestStructPointer->urlStringWithSeparators,
-                                                 RequestUrlType::UrlWithSeparators, entryStructPointer);
+                                                 RequestUrlType::UrlWithSeparators, filterListEntryStructPointer);
 
         // Increment the main allow list entry.
         ++mainAllowListEntry;
@@ -198,17 +198,17 @@ bool FilterListHelper::checkIndividualList(QWebEngineUrlRequestInfo &urlRequestI
         // Check the initial domain white list.
         while (continueChecking && (initialDomainAllowListEntry != initialDomainAllowListEnd))
         {
-            // Get the entry struct.
-            EntryStruct *entryStructPointer = *initialDomainAllowListEntry;
+            // Get the filter list entry struct.
+            FilterListEntryStruct *filterListEntryStructPointer = *initialDomainAllowListEntry;
 
             // Check the applied entry against the truncated URL.
             continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, INITIAL_DOMAIN_ALLOWLIST, requestStructPointer->truncatedUrlString,
-                                                 RequestUrlType::TruncatedUrl, entryStructPointer);
+                                                 RequestUrlType::TruncatedUrl, filterListEntryStructPointer);
 
             //Check the applied entry against the truncated URL with separators.
             if (continueChecking)
                 continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, INITIAL_DOMAIN_ALLOWLIST,
-                                                     requestStructPointer->truncatedUrlStringWithSeparators, RequestUrlType::TruncatedUrlWithSeparators, entryStructPointer);
+                                                     requestStructPointer->truncatedUrlStringWithSeparators, RequestUrlType::TruncatedUrlWithSeparators, filterListEntryStructPointer);
 
             // Increment the initial domain allow list entry.
             ++initialDomainAllowListEntry;
@@ -225,17 +225,17 @@ bool FilterListHelper::checkIndividualList(QWebEngineUrlRequestInfo &urlRequestI
         // Check the main block list.
         while (continueChecking && (mainBlockListEntry != mainBlockListEnd))
         {
-            // Get the entry struct.
-            EntryStruct *entryStructPointer = *mainBlockListEntry;
+            // Get the filter list entry struct.
+            FilterListEntryStruct *filterListEntryStructPointer = *mainBlockListEntry;
 
             // Check the applied entry against the request URL.
             continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, MAIN_BLOCKLIST, requestStructPointer->urlString,
-                                                 RequestUrlType::Url, entryStructPointer);
+                                                 RequestUrlType::Url, filterListEntryStructPointer);
 
             // Check the applied entry against the request URL with separators.
             if (continueChecking)
                 continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, MAIN_BLOCKLIST, requestStructPointer->urlStringWithSeparators,
-                                                 RequestUrlType::UrlWithSeparators, entryStructPointer);
+                                                 RequestUrlType::UrlWithSeparators, filterListEntryStructPointer);
 
             // Increment the main block list entry.
             ++mainBlockListEntry;
@@ -253,16 +253,16 @@ bool FilterListHelper::checkIndividualList(QWebEngineUrlRequestInfo &urlRequestI
         while (continueChecking && (initialDomainBlockListEntry != initialDomainBlockListEnd))
         {
             // Get the entry struct.
-            EntryStruct *entryStructPointer = *initialDomainBlockListEntry;
+            FilterListEntryStruct *filterListEntryStructPointer = *initialDomainBlockListEntry;
 
             // Check the applied entry against the truncated URL.
             continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, INITIAL_DOMAIN_BLOCKLIST, requestStructPointer->truncatedUrlString,
-                                                 RequestUrlType::TruncatedUrl, entryStructPointer);
+                                                 RequestUrlType::TruncatedUrl, filterListEntryStructPointer);
 
             // Check the applied entry against the truncated URL with separators.
             if (continueChecking)
                 continueChecking = checkAppliedEntry(urlRequestInfo, requestStructPointer, filterListStructPointer->title, INITIAL_DOMAIN_BLOCKLIST,
-                                                     requestStructPointer->truncatedUrlStringWithSeparators, RequestUrlType::TruncatedUrlWithSeparators, entryStructPointer);
+                                                     requestStructPointer->truncatedUrlStringWithSeparators, RequestUrlType::TruncatedUrlWithSeparators, filterListEntryStructPointer);
 
             // Increment the initial domain block list entry.
             ++initialDomainBlockListEntry;
@@ -279,10 +279,10 @@ bool FilterListHelper::checkIndividualList(QWebEngineUrlRequestInfo &urlRequestI
         while (continueChecking && (regularExpressionBlockListEntry != regularExpressionBlockListEnd))
         {
             // Get the entry struct.
-            EntryStruct *entryStructPointer = *regularExpressionBlockListEntry;
+            FilterListEntryStruct *filterListEntryStructPointer = *regularExpressionBlockListEntry;
 
             // Check the applied entries.
-            continueChecking = checkRegularExpression(urlRequestInfo, requestStructPointer, filterListStructPointer->title, REGULAR_EXPRESSION_BLOCKLIST, entryStructPointer);
+            continueChecking = checkRegularExpression(urlRequestInfo, requestStructPointer, filterListStructPointer->title, REGULAR_EXPRESSION_BLOCKLIST, filterListEntryStructPointer);
 
             // Increment the regular expression block list entry.
             ++regularExpressionBlockListEntry;
@@ -294,77 +294,77 @@ bool FilterListHelper::checkIndividualList(QWebEngineUrlRequestInfo &urlRequestI
 }
 
 bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt, QString urlString,
-                                         const RequestUrlType requestUrlType, EntryStruct *entryStructPointer) const
+                                         const RequestUrlType requestUrlType, FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Check the entries according to the number.
-    if (entryStructPointer->singleAppliedEntry)  // There is a single entry.
+    if (filterListEntryStructPointer->singleAppliedEntry)  // There is a single entry.
     {
         // Process initial and final matches.
-        if (entryStructPointer->initialMatch && entryStructPointer->finalMatch)  // This is both an initial and final match.
+        if (filterListEntryStructPointer->initialMatch && filterListEntryStructPointer->finalMatch)  // This is both an initial and final match.
         {
             // Check the URL against the applied entry.
-            if (urlString == entryStructPointer->appliedEntryList[0])
+            if (urlString == filterListEntryStructPointer->appliedEntryList[0])
             {
                 // Set the matched URL type.
                 requestStructPointer->matchedUrlType = requestUrlType;
 
                 // Check the domain status.
-                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
             }
         }
-        else if (entryStructPointer->initialMatch)  // This is an initial match.
+        else if (filterListEntryStructPointer->initialMatch)  // This is an initial match.
         {
             // Check the URL against the applied entry.
-            if (urlString.startsWith(entryStructPointer->appliedEntryList[0]))
+            if (urlString.startsWith(filterListEntryStructPointer->appliedEntryList[0]))
             {
                 // Set the matched URL type.
                 requestStructPointer->matchedUrlType = requestUrlType;
 
                 // Check the domain status.
-                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
             }
         }
-        else if (entryStructPointer->finalMatch)  // This is a final match.
+        else if (filterListEntryStructPointer->finalMatch)  // This is a final match.
         {
             // Check the URL against the applied entry.
-            if (urlString.endsWith(entryStructPointer->appliedEntryList[0]))
+            if (urlString.endsWith(filterListEntryStructPointer->appliedEntryList[0]))
             {
                 // Set the matched URL type.
                 requestStructPointer->matchedUrlType = requestUrlType;
 
                 // Check the domain status.
-                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
             }
         }
         else  // There is no initial or final matching.
         {
             // Check if the URL string contains the applied entry.
-            if (urlString.contains(entryStructPointer->appliedEntryList[0]))
+            if (urlString.contains(filterListEntryStructPointer->appliedEntryList[0]))
             {
                 // Set the matched URL type.
                 requestStructPointer->matchedUrlType = requestUrlType;
 
                 // Check the domain status.
-                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
             }
         }
     }
     else  // There are multiple entries.
     {
         // Process initial and final matches.
-        if (entryStructPointer->initialMatch && entryStructPointer->finalMatch)  // This is both an initial and final match.
+        if (filterListEntryStructPointer->initialMatch && filterListEntryStructPointer->finalMatch)  // This is both an initial and final match.
         {
             // Check the URL.
-            if (urlString.startsWith(entryStructPointer->appliedEntryList[0]))
+            if (urlString.startsWith(filterListEntryStructPointer->appliedEntryList[0]))
             {
                 // Get the number of characters to remove from the front of the URL string.
-                int charactersToRemove = entryStructPointer->appliedEntryList[0].size();
+                int charactersToRemove = filterListEntryStructPointer->appliedEntryList[0].size();
 
                 // Remove the entry from the front of the URL string copies.
                 urlString.remove(0, charactersToRemove);
 
                 // Get the entry locations.
-                int penultimateEntryNumber = (entryStructPointer->sizeOfAppliedEntryList - 1);
+                int penultimateEntryNumber = (filterListEntryStructPointer->sizeOfAppliedEntryList - 1);
                 int ultimateEntryIndex = penultimateEntryNumber;
 
                 // Create a URL matches flag.
@@ -374,13 +374,13 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
                 for (int i = 1; i < penultimateEntryNumber; ++i)
                 {
                     // Get the applied entry index, which will be `-1` if it doesn't exist.
-                    int appliedEntryIndex = urlString.indexOf(entryStructPointer->appliedEntryList[i]);
+                    int appliedEntryIndex = urlString.indexOf(filterListEntryStructPointer->appliedEntryList[i]);
 
                     // Check if the entry was found.
                     if (appliedEntryIndex >= 0)  // The entry is contained in the URL string.
                     {
                         // Get the number of characters to remove from the front of the URL strings.
-                        int charactersToRemove = appliedEntryIndex + entryStructPointer->appliedEntryList[i].size();
+                        int charactersToRemove = appliedEntryIndex + filterListEntryStructPointer->appliedEntryList[i].size();
 
                         // Remove the entry from the front of the URL string copies.
                         urlString.remove(0, charactersToRemove);
@@ -395,24 +395,24 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
                 // Check the final entry if the URL still matches.
                 if (urlMatches)
                 {
-                    if (urlString.endsWith(entryStructPointer->appliedEntryList[ultimateEntryIndex]))  // The URL string ends with the last applied entry.
+                    if (urlString.endsWith(filterListEntryStructPointer->appliedEntryList[ultimateEntryIndex]))  // The URL string ends with the last applied entry.
                     {
                         // Set the matched URL type.
                         requestStructPointer->matchedUrlType = requestUrlType;
 
                         // Check the domain status.
-                        return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                        return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
                     }
                 }
             }
         }
-        else if (entryStructPointer->initialMatch)  // This is an initial match.
+        else if (filterListEntryStructPointer->initialMatch)  // This is an initial match.
         {
             // Check the URL.
-            if (urlString.startsWith(entryStructPointer->appliedEntryList[0]))
+            if (urlString.startsWith(filterListEntryStructPointer->appliedEntryList[0]))
             {
                 // Get the number of characters to remove from the front of the URL strings.
-                int charactersToRemove = entryStructPointer->appliedEntryList[0].size();
+                int charactersToRemove = filterListEntryStructPointer->appliedEntryList[0].size();
 
                 // Remove the entry from the front of the URL string copies.
                 urlString.remove(0, charactersToRemove);
@@ -420,16 +420,16 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
                 // Create a URL matches flag.
                 bool urlMatches = true;
 
-                for (int i = 1; i < entryStructPointer->sizeOfAppliedEntryList; ++i)
+                for (int i = 1; i < filterListEntryStructPointer->sizeOfAppliedEntryList; ++i)
                 {
                     // Get the applied entry index, which will be `-1` if it doesn't exist.
-                    int appliedEntryIndex = urlString.indexOf(entryStructPointer->appliedEntryList[i]);
+                    int appliedEntryIndex = urlString.indexOf(filterListEntryStructPointer->appliedEntryList[i]);
 
                     // Check if the entry was found.
                     if (appliedEntryIndex >= 0)  // The entry is contained in the URL string.
                     {
                         // Get the number of characters to remove from the front of the URL strings.
-                        int charactersToRemove = appliedEntryIndex + entryStructPointer->appliedEntryList[i].size();
+                        int charactersToRemove = appliedEntryIndex + filterListEntryStructPointer->appliedEntryList[i].size();
 
                         // Remove the entry from the front of the URL string copies.
                         urlString.remove(0, charactersToRemove);
@@ -448,14 +448,14 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
                     requestStructPointer->matchedUrlType = requestUrlType;
 
                     // Check the domain status.
-                    return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                    return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
                 }
             }
         }
-        else if (entryStructPointer->finalMatch)  // This is a final match.
+        else if (filterListEntryStructPointer->finalMatch)  // This is a final match.
         {
             // Get the entry locations.
-            int penultimateEntryNumber = (entryStructPointer->sizeOfAppliedEntryList - 1);
+            int penultimateEntryNumber = (filterListEntryStructPointer->sizeOfAppliedEntryList - 1);
             int ultimateEntryIndex = penultimateEntryNumber;
 
             // Create a URL matches flag.
@@ -465,13 +465,13 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
             for (int i = 0; i < penultimateEntryNumber; ++i)
             {
                 // Get the applied entry index, which will be `-1` if it doesn't exist.
-                int appliedEntryIndex = urlString.indexOf(entryStructPointer->appliedEntryList[i]);
+                int appliedEntryIndex = urlString.indexOf(filterListEntryStructPointer->appliedEntryList[i]);
 
                 // Check if the entry was found.
                 if (appliedEntryIndex >= 0)  // The entry is contained in the URL string.
                 {
                     // Get the number of characters to remove from the front of the URL strings.
-                    int charactersToRemove = appliedEntryIndex + entryStructPointer->appliedEntryList[i].size();
+                    int charactersToRemove = appliedEntryIndex + filterListEntryStructPointer->appliedEntryList[i].size();
 
                     // Remove the entry from the front of the URL string copies.
                     urlString.remove(0, charactersToRemove);
@@ -486,13 +486,13 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
             // Check the final entry if the URL still matches.
             if (urlMatches)
             {
-                if (urlString.endsWith(entryStructPointer->appliedEntryList[ultimateEntryIndex]))  // The URL string ends with the last applied entry.
+                if (urlString.endsWith(filterListEntryStructPointer->appliedEntryList[ultimateEntryIndex]))  // The URL string ends with the last applied entry.
                 {
                     // Set the matched URL type.
                     requestStructPointer->matchedUrlType = requestUrlType;
 
                     // Check the domain status.
-                    return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                    return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
                 }
             }
         }
@@ -501,16 +501,16 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
             // Create a URL matches flag.
             bool urlMatches = true;
 
-            for (int i = 0; i < entryStructPointer->sizeOfAppliedEntryList; ++i)
+            for (int i = 0; i < filterListEntryStructPointer->sizeOfAppliedEntryList; ++i)
             {
                 // Get the applied entry index, which will be `-1` if it doesn't exist.
-                int appliedEntryIndex = urlString.indexOf(entryStructPointer->appliedEntryList[i]);
+                int appliedEntryIndex = urlString.indexOf(filterListEntryStructPointer->appliedEntryList[i]);
 
                 // Check if the entry was found.
                 if (appliedEntryIndex >= 0)  // The entry is contained in the URL string.
                 {
                     // Get the number of characters to remove from the front of the URL strings.
-                    int charactersToRemove = appliedEntryIndex + entryStructPointer->appliedEntryList[i].size();
+                    int charactersToRemove = appliedEntryIndex + filterListEntryStructPointer->appliedEntryList[i].size();
 
                     // Remove the entry from the front of the URL string copies.
                     urlString.remove(0, charactersToRemove);
@@ -529,7 +529,7 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
                 requestStructPointer->matchedUrlType = requestUrlType;
 
                 // Check the domain status.
-                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
             }
         }
     }
@@ -539,16 +539,16 @@ bool FilterListHelper::checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInf
 }
 
 bool FilterListHelper::checkRegularExpression(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                                              EntryStruct *entryStructPointer) const
+                                              FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Create an applied entry regular expression.
-    QRegularExpression appliedEntryRegularExpression(entryStructPointer->appliedEntryList[0]);
+    QRegularExpression appliedEntryRegularExpression(filterListEntryStructPointer->appliedEntryList[0]);
 
     // Check if the regular expression matches the applied entry.
     if (requestStructPointer->urlString.contains(appliedEntryRegularExpression))
     {
         // Check the domain status.
-        return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+        return checkDomain(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
     }
 
     // If the regular expression doesn't match, return `true` to continue processing the URL request.
@@ -556,34 +556,34 @@ bool FilterListHelper::checkRegularExpression(QWebEngineUrlRequestInfo &urlReque
 }
 
 bool FilterListHelper::checkDomain(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                                   EntryStruct *entryStructPointer) const
+                                   FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Check domain status.
-    if (entryStructPointer->domain == FilterOptionDisposition::Null)  // Ignore domain status.
+    if (filterListEntryStructPointer->domain == FilterOptionDisposition::Null)  // Ignore domain status.
     {
         // Check the third-party status.
-        return checkThirdParty(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+        return checkThirdParty(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
     }
-    else if (entryStructPointer->domain == FilterOptionDisposition::Apply)  // Block requests from listed domains.
+    else if (filterListEntryStructPointer->domain == FilterOptionDisposition::Apply)  // Block requests from listed domains.
     {
         // Check each domain.
-        for (QString blockedDomain : entryStructPointer->domainList)
+        for (QString blockedDomain : filterListEntryStructPointer->domainList)
         {
             // Check if the request came from a blocked domain.
             if (requestStructPointer->firstPartyHost.endsWith(blockedDomain))
             {
                 // Check the third-party status.
-                return checkThirdParty(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+                return checkThirdParty(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
             }
         }
     }
-    else if (entryStructPointer->domain == FilterOptionDisposition::Override)  // Block domains that are not overridden.
+    else if (filterListEntryStructPointer->domain == FilterOptionDisposition::Override)  // Block domains that are not overridden.
     {
         // Create a block domain flag.
         bool blockDomain = true;
 
         // Check each overridden domain.
-        for (QString overriddenDomain : entryStructPointer->domainList)
+        for (QString overriddenDomain : filterListEntryStructPointer->domainList)
         {
             // Check if the request came from an overridden domain.
             if (requestStructPointer->firstPartyHost.endsWith(overriddenDomain))
@@ -597,7 +597,7 @@ bool FilterListHelper::checkDomain(QWebEngineUrlRequestInfo &urlRequestInfo, Req
         if (blockDomain)
         {
             // Check the third-party status.
-            return checkThirdParty(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return checkThirdParty(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
     }
 
@@ -606,49 +606,49 @@ bool FilterListHelper::checkDomain(QWebEngineUrlRequestInfo &urlRequestInfo, Req
 }
 
 bool FilterListHelper::checkThirdParty(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                                       EntryStruct *entryStructPointer) const
+                                       FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Check third-party status.
-    if (entryStructPointer->thirdParty == FilterOptionDisposition::Null)  // Ignore third-party status.
+    if (filterListEntryStructPointer->thirdParty == FilterOptionDisposition::Null)  // Ignore third-party status.
     {
         // Check if request options are applied.
-        if (entryStructPointer->hasRequestOptions)  // Request options are applied.
+        if (filterListEntryStructPointer->hasRequestOptions)  // Request options are applied.
         {
             // Check the request options.
-            return checkRequestOptions(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return checkRequestOptions(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
         else  // Request options are not applied.
         {
             // Process the request.
-            return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
     }
-    else if ((entryStructPointer->thirdParty == FilterOptionDisposition::Apply) && requestStructPointer->isThirdPartyRequest)  // Block third-party request.
+    else if ((filterListEntryStructPointer->thirdParty == FilterOptionDisposition::Apply) && requestStructPointer->isThirdPartyRequest)  // Block third-party request.
     {
         // Check if request options are applied.
-        if (entryStructPointer->hasRequestOptions)  // Request options are applied.
+        if (filterListEntryStructPointer->hasRequestOptions)  // Request options are applied.
         {
             // Check the request options.
-            return checkRequestOptions(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return checkRequestOptions(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
         else  // Request options are not applied.
         {
             // Process the request.
-            return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
     }
-    else if ((entryStructPointer->thirdParty == FilterOptionDisposition::Override) && !requestStructPointer->isThirdPartyRequest)  // Block first-party requests.
+    else if ((filterListEntryStructPointer->thirdParty == FilterOptionDisposition::Override) && !requestStructPointer->isThirdPartyRequest)  // Block first-party requests.
     {
         // Check if request options are applied.
-        if (entryStructPointer->hasRequestOptions)  // Request options are applied.
+        if (filterListEntryStructPointer->hasRequestOptions)  // Request options are applied.
         {
             // Check the request options.
-            return checkRequestOptions(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return checkRequestOptions(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
         else  // Request options are not applied.
         {
             // Process the request.
-            return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+            return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
         }
     }
 
@@ -657,31 +657,31 @@ bool FilterListHelper::checkThirdParty(QWebEngineUrlRequestInfo &urlRequestInfo,
 }
 
 bool FilterListHelper::checkRequestOptions(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                                           EntryStruct *entryStructPointer) const
+                                           FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Process font requests.
-    if ((entryStructPointer->font == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeFontResource))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->font == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeFontResource))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process image requests.
-    if ((entryStructPointer->image == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeImage))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->image == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeImage))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process main frame requests.
-    if ((entryStructPointer->mainFrame == FilterOptionDisposition::Apply) && ((requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeMainFrame) ||
+    if ((filterListEntryStructPointer->mainFrame == FilterOptionDisposition::Apply) && ((requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeMainFrame) ||
                                                                               (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeNavigationPreloadMainFrame)))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process media requests.
-    if ((entryStructPointer->media == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeMedia))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->media == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeMedia))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process object requests.
-    if ((entryStructPointer->object == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeObject))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->object == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeObject))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process other requests.
-    if ((entryStructPointer->other == FilterOptionDisposition::Apply) && ((requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeSubResource) ||
+    if ((filterListEntryStructPointer->other == FilterOptionDisposition::Apply) && ((requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeSubResource) ||
                                                                           (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeWorker) ||
                                                                           (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeSharedWorker) ||
                                                                           (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypePrefetch) ||
@@ -690,39 +690,39 @@ bool FilterListHelper::checkRequestOptions(QWebEngineUrlRequestInfo &urlRequestI
                                                                           (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeCspReport) ||
                                                                           (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypePluginResource) ||
                                                                           (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeUnknown)))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process ping requests
-    if ((entryStructPointer->ping == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypePing))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->ping == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypePing))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process script requests.
-    if ((entryStructPointer->script == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeScript))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->script == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeScript))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process style sheet requests.
-    if ((entryStructPointer->styleSheet == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeStylesheet))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->styleSheet == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeStylesheet))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process sub resource requests.
-    if ((entryStructPointer->subFrame == FilterOptionDisposition::Apply) && ((requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeSubFrame) ||
+    if ((filterListEntryStructPointer->subFrame == FilterOptionDisposition::Apply) && ((requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeSubFrame) ||
                                                                              (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeNavigationPreloadSubFrame)))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process web socket requests.
-    if ((entryStructPointer->webSocket == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeWebSocket))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->webSocket == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeWebSocket))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // Process XML HTTP requests.
-    if ((entryStructPointer->xmlHttpRequest == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeXhr))
-        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, entryStructPointer);
+    if ((filterListEntryStructPointer->xmlHttpRequest == FilterOptionDisposition::Apply) && (requestStructPointer->resourceTypeInt == QWebEngineUrlRequestInfo::ResourceTypeXhr))
+        return processRequest(urlRequestInfo, requestStructPointer, filterListTitle, sublistInt, filterListEntryStructPointer);
 
     // The request options specified don't match this request.  Return `true` to continue processing the URL request.
     return true;
 }
 
 bool FilterListHelper::processRequest(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                                    EntryStruct *entryStructPointer) const
+                                    FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Set the request disposition.
     if (sublistInt <= 2)
@@ -733,7 +733,7 @@ bool FilterListHelper::processRequest(QWebEngineUrlRequestInfo &urlRequestInfo,
     // Populate the request struct.
     requestStructPointer->filterListTitle = filterListTitle;
     requestStructPointer->sublistInt = sublistInt;
-    requestStructPointer->entryStruct = *entryStructPointer;
+    requestStructPointer->filterListEntryStruct = *filterListEntryStructPointer;
 
     // Block the request if specified.
     if (requestStructPointer->dispositionInt == BLOCKED)
@@ -846,88 +846,87 @@ FilterListStruct* FilterListHelper::populateFilterList(const QString &filterList
     // Populate the filter list file name.
     filterListStructPointer->filePath = filterListFileName;
 
-    // Create a filter list string.
-    QString filterListString;
+    // Create the temporary filter list entry string.
+    QString filterListEntryString;
 
-    // Process each line of the filter list.
-    while (filterListTextStream.readLineInto(&filterListString)) {
-        // Create an entry struct.
-        EntryStruct *entryStructPointer = new EntryStruct;
+    // Parse each line of the filter list.
+    while (filterListTextStream.readLineInto(&filterListEntryString)) {
+        // Create a filter list entry struct.
+        FilterListEntryStruct *filterListEntryStructPointer = new FilterListEntryStruct;
 
         // Store the original entry.
-        entryStructPointer->originalEntry = filterListString;
+        filterListEntryStructPointer->originalEntryString = filterListEntryString;
 
-        // Process the entry.
-        if (filterListString.isEmpty())  // Ignore empty lines.
+        // Parse the entry.
+        if (filterListEntryString.isEmpty())  // Ignore empty lines.
         {
             // Do nothing.
 
             // Log the dropping of the line.
-            //qDebug().noquote().nospace() << filterListString << " NOT added from " << filterListFileName << " (empty line).";
+            //qDebug().noquote().nospace() << filterListEntryString << "  NOT added from  " << filterListFileName << "  (empty line).";
         }
-        else if (filterListString.startsWith(QLatin1Char('[')))  // The line starts with `[`, which is the file format.
+        else if (filterListEntryString.startsWith(QLatin1Char('[')))  // The line starts with `[`, which is the file format.
         {
             // Do nothing.
 
             // Log the dropping of the line.
-            //qDebug().noquote().nospace() << filterListString << " NOT added from " << filterListFileName << " (file format).";
+            //qDebug().noquote().nospace() << filterListEntryString << "  NOT added from  " << filterListFileName << "  (file format).";
         }
-        else if (filterListString.contains(QLatin1String("##")) ||
-                 filterListString.contains(QLatin1String("#?#")) ||
-                 filterListString.contains(QLatin1String("#@#")) ||
-                 filterListString.contains(QLatin1String("#$#")))  // The line contains unimplemented content filtering.
+        else if (filterListEntryString.contains(QLatin1String("##")) ||
+                 filterListEntryString.contains(QLatin1String("#?#")) ||
+                 filterListEntryString.contains(QLatin1String("#@#")) ||
+                 filterListEntryString.contains(QLatin1String("#$#")))  // The line contains unimplemented content filtering.
         {
             // Do nothing.
 
             // Log the dropping of the line.
-            //qDebug().noquote().nospace() << filterListString << " NOT added from " << filterListFileName << " (content filtering).";
+            //qDebug().noquote().nospace() << filterListEntryString << "  NOT added from  " << filterListFileName << "  (content filtering).";
         }
-        else if (filterListString.startsWith(QLatin1Char('!')))  // The line starts with `!`, which are comments.
+        else if (filterListEntryString.startsWith(QLatin1Char('!')))  // The line starts with `!`, which are comments.
         {
-            if (filterListString.startsWith(QLatin1String("! Title: ")))  // The line contains the title.
+            if (filterListEntryString.startsWith(QLatin1String("! Title: ")))  // The line contains the title.
             {
                 // Add the title to the filter list struct.
-                filterListStructPointer->title = filterListString.remove(0, 9);
+                filterListStructPointer->title = filterListEntryString.remove(0, 9);
 
                 // Log the addition of the filter list title.
-                //qDebug().noquote().nospace() << "Filter list title:  " << filterListString << " added from " << filterListFileName;
+                //qDebug().noquote().nospace() << "Filter list title:  " << filterListEntryString << "  ADDED from  " << filterListFileName << ".";
             }
-            else if (filterListString.startsWith(QLatin1String("! Version: ")))  // The line contains the version.
+            else if (filterListEntryString.startsWith(QLatin1String("! Version: ")))  // The line contains the version.
             {
                 // Add the version to the filter list struct.
-                filterListStructPointer->version = filterListString.remove(0, 11);
+                filterListStructPointer->version = filterListEntryString.remove(0, 11);
 
                 // Log the addition of the filter list version.
-                //qDebug().noquote().nospace() << "Filter list version:  " << filterListString << " added from " << filterListFileName;
+                //qDebug().noquote().nospace() << "Filter list version:  " << filterListEntryString << "  ADDED from  " << filterListFileName << ".";
             }
+            else  // The comment is not important
+            {
+                // Else do nothing.
 
-            // Else do nothing.
-
-            // Log the dropping of the line.
-            //qDebug().noquote().nospace() << originalFilterListString << " NOT added from " << filterListFileName;
+                // Log the dropping of the line.
+                //qDebug().noquote().nospace() << filterListEntryString << "  NOT added from  " << filterListFileName << "  (comment).";
+            }
         }
-        else  // Process the filter options.
+        else  // Process the entry.
         {
             // Get the index of the last dollar sign.
-            int indexOfLastDollarSign = filterListString.lastIndexOf(QLatin1Char('$'));
+            int indexOfLastDollarSign = filterListEntryString.lastIndexOf(QLatin1Char('$'));
 
             // Process the filter options if they exist.
             if (indexOfLastDollarSign > -1)
             {
-                // Get the filter options.
-                entryStructPointer->originalFilterOptions = filterListString.section(QLatin1Char('$'), -1);
+                // Store the original filter options.
+                filterListEntryStructPointer->originalFilterOptionsString = filterListEntryString.section(QLatin1Char('$'), -1);
 
                 // Store the entry without the filter options as the filter list string.
-                filterListString.truncate(indexOfLastDollarSign);
+                filterListEntryString.truncate(indexOfLastDollarSign);
 
                 // Split the filter options.
-                QStringList originalFilterOptionsList = entryStructPointer->originalFilterOptions.split(QLatin1Char(','));
-
-                // Create an applied filter options list.
-                QStringList appliedFilterOptionsList;
+                QStringList originalFilterOptionsList = filterListEntryStructPointer->originalFilterOptionsString.split(QLatin1Char(','));
 
                 // Populate the applied filter options list.
-                for (QString filterOption : originalFilterOptionsList)
+                for (QString filterOptionString : originalFilterOptionsList)
                 {
                     // Only add filter options that are handled by Privacy Browser.  <https://help.adblockplus.org/hc/en-us/articles/360062733293-How-to-write-filters>
                     // `csp` specifies a Content Security Policy, which isn't handled by Privacy Browser.
@@ -940,416 +939,412 @@ FilterListStruct* FilterListHelper::populateFilterList(const QString &filterList
                     // `generichide` isn't implemented by Privacy Browser.
                     // `match-case` isn't currently implemented by Privacy Browser, but it could be if that became important.
                     // `xhr` is probably a misspelling of `xmlhttprequest`.
-                    if (!(filterOption.startsWith(QLatin1String("csp=")) ||
-                          filterOption.startsWith(QLatin1String("method=")) ||
-                          filterOption.startsWith(QLatin1String("redirect=")) ||
-                          filterOption.startsWith(QLatin1String("rewrite=")) ||
-                          (filterOption == (QLatin1String("1p"))) ||
-                          (filterOption == (QLatin1String("elemhide"))) ||
-                          (filterOption == (QLatin1String("genericblock"))) ||
-                          (filterOption == (QLatin1String("generichide"))) ||
-                          (filterOption == (QLatin1String("match-case"))) ||
-                          (filterOption == (QLatin1String("xhr")))))
-                        appliedFilterOptionsList.append(filterOption);
+                    if (!(filterOptionString.startsWith(QLatin1String("csp=")) ||
+                          filterOptionString.startsWith(QLatin1String("method=")) ||
+                          filterOptionString.startsWith(QLatin1String("redirect=")) ||
+                          filterOptionString.startsWith(QLatin1String("rewrite=")) ||
+                          (filterOptionString == (QLatin1String("1p"))) ||
+                          (filterOptionString == (QLatin1String("elemhide"))) ||
+                          (filterOptionString == (QLatin1String("genericblock"))) ||
+                          (filterOptionString == (QLatin1String("generichide"))) ||
+                          (filterOptionString == (QLatin1String("match-case"))) ||
+                          (filterOptionString == (QLatin1String("xhr")))))
+                        // Add the filter option to the applied filter options list.
+                        filterListEntryStructPointer->appliedFilterOptionsList.append(filterOptionString);
                 }
 
-                // Store the applied filter options list.
-                entryStructPointer->appliedFilterOptionsList = appliedFilterOptionsList;
-
                 // Initialize an override struct.
-                OverrideStruct overrideStruct;
+                FilterOptionsOverrideStruct filterOptionsOverrideStruct;
 
                 // Populate the filter options entries.
-                for (QString filterOption : appliedFilterOptionsList)
+                for (QString filterOptionString : filterListEntryStructPointer->appliedFilterOptionsList)
                 {
                     // Parse the filter options.
-                    if (filterOption.startsWith(QLatin1String("domain=")))  // Domain.
+                    if (filterOptionString.startsWith(QLatin1String("domain=")))  // Domain.
                     {
                         // Remove `domain=` from the filter option.
-                        filterOption.remove(0, 7);
-
-                        // Store the domain list.
-                        entryStructPointer->domainList = filterOption.split(QLatin1Char('|'));
+                        filterOptionString.remove(0, 7);
 
-                        // Set the disposition.
-                        if (entryStructPointer->domainList[0].startsWith(QLatin1Char('~')))  // Override domains.
+                        // Set the disposition according to the domain type.
+                        if (filterOptionString.contains(QLatin1Char('~')))  // Override domains.
                         {
-                            // Populate the domain filter disposition.
-                            entryStructPointer->domain = FilterOptionDisposition::Override;
+                            // Remove the tilde from the beginning of each domain.
+                            filterOptionString.remove(QLatin1Char('~'));
 
-                            // Remove the initial `~` from each domain.
-                            entryStructPointer->domainList.replaceInStrings(QLatin1String("~"), QLatin1String(""));
+                            // Populate the domain filter disposition.
+                            filterListEntryStructPointer->domain = FilterOptionDisposition::Override;
                         }
                         else  // Standard domains.
                         {
                             // Populate the domain filter disposition.
-                            entryStructPointer->domain = FilterOptionDisposition::Apply;
+                            filterListEntryStructPointer->domain = FilterOptionDisposition::Apply;
                         }
+
+                        // Store the domain list.
+                        filterListEntryStructPointer->domainList = filterOptionString.split(QLatin1Char('|'));
                     }
-                    else if (filterOption == QLatin1String("third-party"))  // Third-party.
+                    else if (filterOptionString == QLatin1String("third-party"))  // Third-party.
                     {
                         // Populate the third-party filter disposition.
-                        entryStructPointer->thirdParty = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->thirdParty = FilterOptionDisposition::Apply;
                     }
-                    else if (filterOption == QLatin1String("~third-party"))  // Third-party override.
+                    else if (filterOptionString == QLatin1String("~third-party"))  // Third-party override.
                     {
                         // Populate the third-party filter disposition.
-                        entryStructPointer->thirdParty = FilterOptionDisposition::Override;
+                        filterListEntryStructPointer->thirdParty = FilterOptionDisposition::Override;
                     }
-                    else if ((filterOption == QLatin1String("document")) || (filterOption == QLatin1String("popup")))  // Document (and popup).
+                    else if ((filterOptionString == QLatin1String("document")) || (filterOptionString == QLatin1String("popup")))  // Document (and popup).
                     {
                         // Populate the main frame disposition.
-                        entryStructPointer->mainFrame = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->mainFrame = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("font"))  // Font.
+                    else if (filterOptionString == QLatin1String("font"))  // Font.
                     {
                         // Populate the font disposition.
-                        entryStructPointer->font = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->font = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("image"))  // Image.
+                    else if (filterOptionString == QLatin1String("image"))  // Image.
                     {
                         // Populate the image disposition.
-                        entryStructPointer->image = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->image = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("media"))  // Media.
+                    else if (filterOptionString == QLatin1String("media"))  // Media.
                     {
                         // Populate the media disposition.
-                        entryStructPointer->media = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->media = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("object"))  // Object.
+                    else if (filterOptionString == QLatin1String("object"))  // Object.
                     {
                         // Populate the object disposition.
-                        entryStructPointer->object = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->object = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if ((filterOption == QLatin1String("other")) || (filterOption == QLatin1String("webrtc")))  // Other.
+                    else if ((filterOptionString == QLatin1String("other")) || (filterOptionString == QLatin1String("webrtc")))  // Other.
                     {
                         // Populate the other disposition.
-                        entryStructPointer->other = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->other = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("ping"))  // Ping.
+                    else if (filterOptionString == QLatin1String("ping"))  // Ping.
                     {
                         // Populate the ping disposition.
-                        entryStructPointer->ping = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->ping = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("script"))  // Script.
+                    else if (filterOptionString == QLatin1String("script"))  // Script.
                     {
                         // Populate the script disposition.
-                        entryStructPointer->script = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->script = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("stylesheet"))  // Style sheet.
+                    else if (filterOptionString == QLatin1String("stylesheet"))  // Style sheet.
                     {
                         // Populate the script disposition.
-                        entryStructPointer->styleSheet = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->styleSheet = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("subdocument"))  // Sub document.
+                    else if (filterOptionString == QLatin1String("subdocument"))  // Sub document.
                     {
                         // Populate the sub resource disposition.
-                        entryStructPointer->subFrame = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->subFrame = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("websocket"))  // Web socket.
+                    else if (filterOptionString == QLatin1String("websocket"))  // Web socket.
                     {
                         // Populate the web socket disposition.
-                        entryStructPointer->webSocket = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->webSocket = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("xmlhttprequest"))  // XML HTTP request.
+                    else if (filterOptionString == QLatin1String("xmlhttprequest"))  // XML HTTP request.
                     {
                         //Populate the XML HTTP request disposition.
-                        entryStructPointer->xmlHttpRequest = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->xmlHttpRequest = FilterOptionDisposition::Apply;
 
                         // Set the has request options flag.
-                        entryStructPointer->hasRequestOptions = true;
+                        filterListEntryStructPointer->hasRequestOptions = true;
                     }
-                    else if (filterOption == QLatin1String("~document"))  // Document override.
+                    else if (filterOptionString == QLatin1String("~document"))  // Document override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.mainFrame = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.mainFrame = true;
                     }
-                    else if (filterOption == QLatin1String("~font"))  // Font override.
+                    else if (filterOptionString == QLatin1String("~font"))  // Font override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.font = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.font = true;
                     }
-                    else if (filterOption == QLatin1String("~image"))  // Image override.
+                    else if (filterOptionString == QLatin1String("~image"))  // Image override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.image = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.image = true;
                     }
-                    else if (filterOption == QLatin1String("~media"))  // Media override.
+                    else if (filterOptionString == QLatin1String("~media"))  // Media override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.media = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.media = true;
                     }
-                    else if (filterOption == QLatin1String("~object"))  // Object override.
+                    else if (filterOptionString == QLatin1String("~object"))  // Object override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.object = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.object = true;
                     }
-                    else if ((filterOption == QLatin1String("~other")) || (filterOption == QLatin1String("~webrtc")))  // Other override.
+                    else if ((filterOptionString == QLatin1String("~other")) || (filterOptionString == QLatin1String("~webrtc")))  // Other override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.other = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.other = true;
                     }
-                    else if (filterOption == QLatin1String("~ping"))  // Ping override.
+                    else if (filterOptionString == QLatin1String("~ping"))  // Ping override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.ping = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.ping = true;
                     }
-                    else if (filterOption == QLatin1String("~script"))  // Script override.
+                    else if (filterOptionString == QLatin1String("~script"))  // Script override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.script = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.script = true;
                     }
-                    else if (filterOption == QLatin1String("~stylesheet"))  // Style sheet override.
+                    else if (filterOptionString == QLatin1String("~stylesheet"))  // Style sheet override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.styleSheet = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.styleSheet = true;
                     }
-                    else if (filterOption == QLatin1String("~subdocument"))  // Sub document override.
+                    else if (filterOptionString == QLatin1String("~subdocument"))  // Sub document override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.subFrame = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.subFrame = true;
                     }
-                    else if (filterOption == QLatin1String("~websocket"))  // Web socket override.
+                    else if (filterOptionString == QLatin1String("~websocket"))  // Web socket override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.webSocket = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.webSocket = true;
                     }
-                    else if (filterOption == QLatin1String("~xmlhttprequest"))  // XML HTTP request override.
+                    else if (filterOptionString == QLatin1String("~xmlhttprequest"))  // XML HTTP request override.
                     {
                         // Populate the override struct.
-                        overrideStruct.hasOverride = true;
-                        overrideStruct.xmlHttpRequest = true;
+                        filterOptionsOverrideStruct.hasOverride = true;
+                        filterOptionsOverrideStruct.xmlHttpRequest = true;
                     }
                 }
 
                 // Apply the overrides.
-                if (overrideStruct.hasOverride)
+                if (filterOptionsOverrideStruct.hasOverride)
                 {
                     // Set the has request options flag.
-                    entryStructPointer->hasRequestOptions = true;
+                    filterListEntryStructPointer->hasRequestOptions = true;
 
                     // Font.
-                    if (overrideStruct.font)
-                        entryStructPointer->font = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.font)
+                        filterListEntryStructPointer->font = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->font = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->font = FilterOptionDisposition::Apply;
 
                     // Image.
-                    if (overrideStruct.image)
-                        entryStructPointer->image = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.image)
+                        filterListEntryStructPointer->image = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->image = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->image = FilterOptionDisposition::Apply;
 
                     // Main Frame (document).
-                    if (overrideStruct.mainFrame)
-                        entryStructPointer->mainFrame = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.mainFrame)
+                        filterListEntryStructPointer->mainFrame = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->mainFrame = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->mainFrame = FilterOptionDisposition::Apply;
 
                     // Media.
-                    if (overrideStruct.media)
-                        entryStructPointer->media = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.media)
+                        filterListEntryStructPointer->media = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->media = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->media = FilterOptionDisposition::Apply;
 
                     // Object.
-                    if (overrideStruct.object)
-                        entryStructPointer->object = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.object)
+                        filterListEntryStructPointer->object = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->object = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->object = FilterOptionDisposition::Apply;
 
                     // Other.
-                    if (overrideStruct.other)
-                        entryStructPointer->other = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.other)
+                        filterListEntryStructPointer->other = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->other = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->other = FilterOptionDisposition::Apply;
 
                     // Ping.
-                    if (overrideStruct.ping)
-                        entryStructPointer->ping = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.ping)
+                        filterListEntryStructPointer->ping = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->ping = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->ping = FilterOptionDisposition::Apply;
 
                     //  Script.
-                    if (overrideStruct.script)
-                        entryStructPointer->script = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.script)
+                        filterListEntryStructPointer->script = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->script = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->script = FilterOptionDisposition::Apply;
 
                     // Style Sheet.
-                    if (overrideStruct.styleSheet)
-                        entryStructPointer->styleSheet = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.styleSheet)
+                        filterListEntryStructPointer->styleSheet = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->styleSheet = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->styleSheet = FilterOptionDisposition::Apply;
 
                     // Sub Resource.
-                    if (overrideStruct.subFrame)
-                        entryStructPointer->subFrame = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.subFrame)
+                        filterListEntryStructPointer->subFrame = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->subFrame = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->subFrame = FilterOptionDisposition::Apply;
 
                     // Web Socket.
-                    if (overrideStruct.webSocket)
-                        entryStructPointer->webSocket = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.webSocket)
+                        filterListEntryStructPointer->webSocket = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->webSocket = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->webSocket = FilterOptionDisposition::Apply;
 
                     // XML HTTP Request.
-                    if (overrideStruct.xmlHttpRequest)
-                        entryStructPointer->xmlHttpRequest = FilterOptionDisposition::Override;
+                    if (filterOptionsOverrideStruct.xmlHttpRequest)
+                        filterListEntryStructPointer->xmlHttpRequest = FilterOptionDisposition::Override;
                     else
-                        entryStructPointer->xmlHttpRequest = FilterOptionDisposition::Apply;
+                        filterListEntryStructPointer->xmlHttpRequest = FilterOptionDisposition::Apply;
                 }
             }  // Finish processing filter options.
 
-
-
-            if ((entryStructPointer->originalFilterOptions == QLatin1String("1p")) ||
-                (entryStructPointer->originalFilterOptions == QLatin1String("elemhide")) ||
-                (entryStructPointer->originalFilterOptions == QLatin1String("genericblock")) ||
-                (entryStructPointer->originalFilterOptions == QLatin1String("generichide")) ||
-                (entryStructPointer->originalFilterOptions == QLatin1String("match-case")) ||
-                (entryStructPointer->originalFilterOptions == QLatin1String("xhr")))  // There is a single filter option that Privacy Browser cannot process.
+            // Process the base entry.
+            if ((filterListEntryStructPointer->originalFilterOptionsString.length() > 0) &&
+                !filterListEntryStructPointer->hasRequestOptions &&
+                (filterListEntryStructPointer->domain == FilterOptionDisposition::Null) &&
+                (filterListEntryStructPointer->thirdParty == FilterOptionDisposition::Null))
+                // There were filter options, but they have all been removed because they don't apply to Privacy Browser.
             {
-                // Ignore entries that contain a single, unsupported filter option.  See <https://redmine.stoutner.com/issues/1217>.
-                // `1p` is not an official filter option.
-                // `elemhide` isn't implemented by Privacy Browser.
-                // `genericblock` isn't implemented by Privacy Browser.
-                // `generichide` isn't implemented by Privacy Browser.
-                // `match-case` isn't currently implemented by Privacy Browser, but it could be if that became important.
-                // `xhr` is probably a misspelling of `xmlhttprequest`.
+                // Ignore these entries as they will have unintended consequences.
 
                 // Log the dropping of the entry.
-                //qDebug().noquote().nospace() << "Unsupported filter option:  " << entryStructPointer->originalEntry << " NOT added from " << filterListFileName << ".";
+                //qDebug().noquote().nospace() << "Unsupported filter options:  " << filterListEntryStructPointer->originalEntryString << "  NOT added from  " << filterListFileName << ".";
             }
-            else if (filterListString.isEmpty() && !entryStructPointer->hasRequestOptions)  // There are no applied entries and no request options.
+            else if (filterListEntryString.isEmpty() && !filterListEntryStructPointer->hasRequestOptions)  // There are no applied entries and no request options.
             {
                 // Ignore these entries as they will block all requests generally or for a specified domain.  Typically these are left over after removing `csp=` filter options.
 
                 // Log the dropping of the entry.
-                //qDebug().noquote().nospace() << entryStructPointer->originalEntry << " NOT added from " << filterListFileName << ".";
+                //qDebug().noquote().nospace() << "Nothing left is applied:  " << filterListEntryStructPointer->originalEntryString << "  NOT added from  " << filterListFileName << ".";
             }
-            else if (filterListString.startsWith(QLatin1String("@@")))  // Process an allow list entry.
+            else if (filterListEntryString.startsWith(QLatin1String("@@")))  // Process an allow list entry.
             {
                 // Remove the initial `@@`.
-                filterListString.remove(0, 2);
+                filterListEntryString.remove(0, 2);
 
-                if (filterListString.startsWith(QLatin1String("||")))  // Process an initial domain allow list entry.
+                if (filterListEntryString.startsWith(QLatin1String("||")))  // Process an initial domain allow list entry.
                 {
                     // Remove the initial `||`.
-                    filterListString.remove(0, 2);
+                    filterListEntryString.remove(0, 2);
 
                     // Set the initial match flag.
-                    entryStructPointer->initialMatch = true;
+                    filterListEntryStructPointer->initialMatch = true;
 
                     // Prepare the filter list string.
-                    prepareFilterListString(filterListString, entryStructPointer);
+                    prepareFilterListString(filterListEntryString, filterListEntryStructPointer);
 
                     // Add the entry struct to the initial domain allow list.
-                    filterListStructPointer->initialDomainAllowListPointer->push_front(entryStructPointer);
+                    filterListStructPointer->initialDomainAllowListPointer->push_front(filterListEntryStructPointer);
 
                     // Log the addition to the filter list.
-                    //qDebug().noquote().nospace() << entryStructPointer->originalEntry << " added to Initial Domain Allow List from " << filterListFileName << ".";
+                    //qDebug().noquote().nospace() << filterListEntryStructPointer->originalEntry << " added to Initial Domain Allow List from " << filterListFileName << ".";
                 }
-                else if (filterListString.contains(QLatin1String("\\")))  // Process a regular expression allow list entry.
+                else if (filterListEntryString.contains(QLatin1String("\\")))  // Process a regular expression allow list entry.
                 {
                     // Add the regular expression to the applied entry list.
-                    entryStructPointer->appliedEntryList.append(filterListString);
+                    filterListEntryStructPointer->appliedEntryList.append(filterListEntryString);
 
                     // Add the entry struct to the regular expression allow list.
-                    filterListStructPointer->regularExpressionAllowListPointer->push_front(entryStructPointer);
+                    filterListStructPointer->regularExpressionAllowListPointer->push_front(filterListEntryStructPointer);
+
+                    // Log the addition to the filter list.
+                    //qDebug().noquote().nospace() << filterListEntryStructPointer->originalEntry << " added to Regular Expression Allow List from " << filterListFileName << ".";
                 }
                 else  // Process a main allow list entry.
                 {
                     // Prepare the filter list string.
-                    prepareFilterListString(filterListString, entryStructPointer);
+                    prepareFilterListString(filterListEntryString, filterListEntryStructPointer);
 
                     // Add the entry struct to the main allow list.
-                    filterListStructPointer->mainAllowListPointer->push_front(entryStructPointer);
+                    filterListStructPointer->mainAllowListPointer->push_front(filterListEntryStructPointer);
 
                     // Log the addition to the filter list.
-                    //qDebug().noquote().nospace() << entryStructPointer->originalEntry << " added to Main Allow List from " << filterListFileName << ".";
+                    //qDebug().noquote().nospace() << filterListEntryStructPointer->originalEntry << " added to Main Allow List from " << filterListFileName << ".";
                 }
             }
-            else if (filterListString.startsWith(QLatin1String("||")))  // Process an initial domain block list entry.
+            else if (filterListEntryString.startsWith(QLatin1String("||")))  // Process an initial domain block list entry.
             {
                 // Remove the initial `||`.
-                filterListString.remove(0, 2);
+                filterListEntryString.remove(0, 2);
 
                 // Set the initial match flag.
-                entryStructPointer->initialMatch = true;
+                filterListEntryStructPointer->initialMatch = true;
 
                 // Prepare the filter list string.
-                prepareFilterListString(filterListString, entryStructPointer);
+                prepareFilterListString(filterListEntryString, filterListEntryStructPointer);
 
                 // Add the entry struct to the initial domain block list.
-                filterListStructPointer->initialDomainBlockListPointer->push_front(entryStructPointer);
+                filterListStructPointer->initialDomainBlockListPointer->push_front(filterListEntryStructPointer);
 
                 // Log the addition to the filter list.
-                //qDebug().noquote().nospace() << entryStructPointer->originalEntry << " added to Initial Domain Block List from " << filterListFileName << ".";
+                //qDebug().noquote().nospace() << filterListEntryStructPointer->originalEntryString << " added to Initial Domain Block List from " << filterListFileName << ".";
             }
-            else if (filterListString.contains(QLatin1String("\\")))  // Process a regular expression block list entry.
+            else if (filterListEntryString.contains(QLatin1String("\\")))  // Process a regular expression block list entry.
             {
                 // Add the regular expression to the applied entry list.
-                entryStructPointer->appliedEntryList.append(filterListString);
+                filterListEntryStructPointer->appliedEntryList.append(filterListEntryString);
 
                 // Add the entry struct to the regular expression block list.
-                filterListStructPointer->regularExpressionBlockListPointer->push_front(entryStructPointer);
+                filterListStructPointer->regularExpressionBlockListPointer->push_front(filterListEntryStructPointer);
+
+                // Log the addition to the filter list.
+                //qDebug().noquote().nospace() << filterListEntryStructPointer->originalEntryString << " added to Regular Expression Block List from " << filterListFileName << ".";
             }
             else  // Process a main block list entry.
             {
                 // Prepare the filter list string.
-                prepareFilterListString(filterListString, entryStructPointer);
+                prepareFilterListString(filterListEntryString, filterListEntryStructPointer);
 
                 // Add the entry struct to the main block list.
-                filterListStructPointer->mainBlockListPointer->push_front(entryStructPointer);
+                filterListStructPointer->mainBlockListPointer->push_front(filterListEntryStructPointer);
 
                 // Log the addition to the filter list.
-                //qDebug().noquote().nospace() << entryStructPointer->originalEntry << " added to Main Block List from " << filterListFileName << ".";
+                //qDebug().noquote().nospace() << filterListEntryStructPointer->originalEntry << " added to Main Block List from " << filterListFileName << ".";
             }
         }
     }
@@ -1357,46 +1352,46 @@ FilterListStruct* FilterListHelper::populateFilterList(const QString &filterList
     // Close the filter list file.
     filterListFile.close();
 
-    // Return the filter list pair.
+    // Return the filter list struct pointer.
     return filterListStructPointer;
 }
 
-void FilterListHelper::prepareFilterListString(QString &filterListString, EntryStruct *entryStructPointer) const
+void FilterListHelper::prepareFilterListString(QString &filterListEntryString, FilterListEntryStruct *filterListEntryStructPointer) const
 {
     // Check if this is an initial match.
-    if (filterListString.startsWith(QLatin1Char('|')))
+    if (filterListEntryString.startsWith(QLatin1Char('|')))
     {
         // Strip the initial `|`.
-        filterListString.remove(0, 1);
+        filterListEntryString.remove(0, 1);
 
         // Set the initial match flag.
-        entryStructPointer->initialMatch = true;
+        filterListEntryStructPointer->initialMatch = true;
     }
 
     // Check if this is a final match.
-    if (filterListString.endsWith(QLatin1Char('|')))
+    if (filterListEntryString.endsWith(QLatin1Char('|')))
     {
         // Strip the final `|`.
-        filterListString.chop(1);
+        filterListEntryString.chop(1);
 
         // Set the final match flag.
-        entryStructPointer->finalMatch = true;
+        filterListEntryStructPointer->finalMatch = true;
     }
 
     // Remove the initial asterisk if it exists.
-    if (filterListString.startsWith(QLatin1Char('*')))
-        filterListString.remove(0, 1);
+    if (filterListEntryString.startsWith(QLatin1Char('*')))
+        filterListEntryString.remove(0, 1);
 
     // Remove the final asterisk if it exists.
-    if (filterListString.endsWith(QLatin1Char('*')))
-        filterListString.chop(1);
+    if (filterListEntryString.endsWith(QLatin1Char('*')))
+        filterListEntryString.chop(1);
 
-    // Split the filter list string and set it as the applied entry list.
-    entryStructPointer->appliedEntryList = filterListString.split(QLatin1Char('*'));
+    // Split the filter list entry string and set it as the applied entry list.
+    filterListEntryStructPointer->appliedEntryList = filterListEntryString.split(QLatin1Char('*'));
 
     // Store the size of the applied entry list.
-    entryStructPointer->sizeOfAppliedEntryList = entryStructPointer->appliedEntryList.size();
+    filterListEntryStructPointer->sizeOfAppliedEntryList = filterListEntryStructPointer->appliedEntryList.size();
 
     // Determine if this is a single applied entry (including an empty entry).
-    entryStructPointer->singleAppliedEntry = (entryStructPointer->sizeOfAppliedEntryList == 1);
+    filterListEntryStructPointer->singleAppliedEntry = (filterListEntryStructPointer->sizeOfAppliedEntryList == 1);
 }
index 4115ae173d3a3c129ed2c7f2342bae15381f3f99..7904bcdfb12bcabdf6aa0e83e7131961623aa1a4 100644 (file)
@@ -118,17 +118,19 @@ private:
 
     // The private functions.
     bool checkAppliedEntry(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt, QString urlString,
-                           const RequestUrlType requestUrlType, EntryStruct *entryStructPointer) const;
+                           const RequestUrlType requestUrlType, FilterListEntryStruct *filterListEntryStructPointer) const;
     bool checkDomain(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                     EntryStruct *entryStructPointer) const;
+                     FilterListEntryStruct *filterListEntryStructPointer) const;
     bool checkIndividualList(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, FilterListStruct *filterListStructPointer) const;
     bool checkRegularExpression(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                                EntryStruct *entryStructPointer) const;
+                                FilterListEntryStruct *filterListEntryStructPointer) const;
     bool checkRequestOptions(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
-                             EntryStruct *entryStructPointer) const;
-    bool checkThirdParty(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt, EntryStruct *entryStructPointer) const;
+                             FilterListEntryStruct *filterListEntryStructPointer) const;
+    bool checkThirdParty(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
+                         FilterListEntryStruct *filterListEntryStructPointer) const;
     FilterListStruct* populateFilterList(const QString &filterListFileName) const;
-    void prepareFilterListString(QString &filterListString, EntryStruct *entryStructPointer) const;
-    bool processRequest(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt, EntryStruct *entryStructPointer) const;
+    void prepareFilterListString(QString &filterListEntryString, FilterListEntryStruct *filterListEntryStructPointer) const;
+    bool processRequest(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
+                        FilterListEntryStruct *filterListEntryStructPointer) const;
 };
 #endif
diff --git a/src/structs/EntryStruct.h b/src/structs/EntryStruct.h
deleted file mode 100644 (file)
index d730392..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
- *
- * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
- *
- * 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.
- *
- * 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
- * this program.  If not, see <https://www.gnu.org/licenses/>.
- */
-
-#ifndef ENTRY_STRUCT_H
-#define ENTRY_STRUCT_H
-
-// Qt toolkit headers.
-#include <QStringList>
-
-enum FilterOptionDisposition
-{
-    Null = 0,
-    Apply = 1,
-    Override = 2,
-};
-
-struct EntryStruct
-{
-    // The strings.
-    QString originalEntry;
-    QString originalFilterOptions;
-
-    // The string lists.
-    QStringList appliedEntryList;
-    QStringList appliedFilterOptionsList;
-    QStringList domainList;
-
-    // The booleans.
-    bool finalMatch = false;
-    bool hasRequestOptions = false;
-    bool initialMatch = false;
-    bool singleAppliedEntry = false;
-
-    // The ints.
-    int sizeOfAppliedEntryList;
-
-    // The filter options.
-    FilterOptionDisposition domain = FilterOptionDisposition::Null;
-    FilterOptionDisposition font = FilterOptionDisposition::Null;
-    FilterOptionDisposition image = FilterOptionDisposition::Null;
-    FilterOptionDisposition mainFrame = FilterOptionDisposition::Null;
-    FilterOptionDisposition media = FilterOptionDisposition::Null;
-    FilterOptionDisposition object = FilterOptionDisposition::Null;
-    FilterOptionDisposition other = FilterOptionDisposition::Null;
-    FilterOptionDisposition ping = FilterOptionDisposition::Null;
-    FilterOptionDisposition script = FilterOptionDisposition::Null;
-    FilterOptionDisposition styleSheet = FilterOptionDisposition::Null;
-    FilterOptionDisposition subFrame = FilterOptionDisposition::Null;
-    FilterOptionDisposition thirdParty = FilterOptionDisposition::Null;
-    FilterOptionDisposition webSocket = FilterOptionDisposition::Null;
-    FilterOptionDisposition xmlHttpRequest = FilterOptionDisposition::Null;
-};
-#endif
diff --git a/src/structs/FilterListEntryStruct.h b/src/structs/FilterListEntryStruct.h
new file mode 100644 (file)
index 0000000..1665888
--- /dev/null
@@ -0,0 +1,69 @@
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
+ *
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
+ *
+ * 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.
+ *
+ * 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
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef FILTER_LIST_ENTRY_STRUCT_H
+#define FILTER_LIST_ENTRY_STRUCT_H
+
+// Qt toolkit headers.
+#include <QStringList>
+
+enum FilterOptionDisposition
+{
+    Null = 0,
+    Apply = 1,
+    Override = 2,
+};
+
+struct FilterListEntryStruct
+{
+    // The strings.
+    QString originalEntryString;
+    QString originalFilterOptionsString;
+
+    // The string lists.
+    QStringList appliedEntryList;
+    QStringList appliedFilterOptionsList;
+    QStringList domainList;
+
+    // The booleans.
+    bool finalMatch = false;
+    bool hasRequestOptions = false;
+    bool initialMatch = false;
+    bool singleAppliedEntry = false;
+
+    // The ints.
+    int sizeOfAppliedEntryList;
+
+    // The filter options.
+    FilterOptionDisposition domain = FilterOptionDisposition::Null;
+    FilterOptionDisposition font = FilterOptionDisposition::Null;
+    FilterOptionDisposition image = FilterOptionDisposition::Null;
+    FilterOptionDisposition mainFrame = FilterOptionDisposition::Null;
+    FilterOptionDisposition media = FilterOptionDisposition::Null;
+    FilterOptionDisposition object = FilterOptionDisposition::Null;
+    FilterOptionDisposition other = FilterOptionDisposition::Null;
+    FilterOptionDisposition ping = FilterOptionDisposition::Null;
+    FilterOptionDisposition script = FilterOptionDisposition::Null;
+    FilterOptionDisposition styleSheet = FilterOptionDisposition::Null;
+    FilterOptionDisposition subFrame = FilterOptionDisposition::Null;
+    FilterOptionDisposition thirdParty = FilterOptionDisposition::Null;
+    FilterOptionDisposition webSocket = FilterOptionDisposition::Null;
+    FilterOptionDisposition xmlHttpRequest = FilterOptionDisposition::Null;
+};
+#endif
index c732f56ec0d9863984a5f2266804f188c0a2caee..e0360de2d3567249103a776508a66836e08ed6f7 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2024 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
  *
  * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
  *
@@ -21,7 +21,7 @@
 #define FILTER_LIST_STRUCT_H
 
 // Application headers.
-#include "EntryStruct.h"
+#include "FilterListEntryStruct.h"
 
 // C++ headers.
 #include <forward_list>
@@ -37,11 +37,11 @@ struct FilterListStruct
     QString filePath;
 
     // The filter lists.
-    std::forward_list<EntryStruct *> *mainAllowListPointer = new std::forward_list<EntryStruct *>;
-    std::forward_list<EntryStruct *> *initialDomainAllowListPointer = new std::forward_list<EntryStruct *>;
-    std::forward_list<EntryStruct *> *regularExpressionAllowListPointer = new std::forward_list<EntryStruct *>;
-    std::forward_list<EntryStruct *> *mainBlockListPointer = new std::forward_list<EntryStruct *>;
-    std::forward_list<EntryStruct *> *initialDomainBlockListPointer = new std::forward_list<EntryStruct *>;
-    std::forward_list<EntryStruct *> *regularExpressionBlockListPointer = new std::forward_list<EntryStruct *>;
+    std::forward_list<FilterListEntryStruct *> *mainAllowListPointer = new std::forward_list<FilterListEntryStruct *>;
+    std::forward_list<FilterListEntryStruct *> *initialDomainAllowListPointer = new std::forward_list<FilterListEntryStruct *>;
+    std::forward_list<FilterListEntryStruct *> *regularExpressionAllowListPointer = new std::forward_list<FilterListEntryStruct *>;
+    std::forward_list<FilterListEntryStruct *> *mainBlockListPointer = new std::forward_list<FilterListEntryStruct *>;
+    std::forward_list<FilterListEntryStruct *> *initialDomainBlockListPointer = new std::forward_list<FilterListEntryStruct *>;
+    std::forward_list<FilterListEntryStruct *> *regularExpressionBlockListPointer = new std::forward_list<FilterListEntryStruct *>;
 };
 #endif
diff --git a/src/structs/FilterOptionsOverrideStruct.h b/src/structs/FilterOptionsOverrideStruct.h
new file mode 100644 (file)
index 0000000..ace99d8
--- /dev/null
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
+ *
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
+ *
+ * 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.
+ *
+ * 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
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef FILTER_OPTIONS_OVERRIDE_STRUCT_H
+#define FILTER_OPTIONS_OVERRIDE_STRUCT_H
+
+struct FilterOptionsOverrideStruct
+{
+    bool hasOverride = false;
+    bool font = false;
+    bool image = false;
+    bool mainFrame = false;
+    bool media = false;
+    bool object = false;
+    bool other = false;
+    bool ping = false;
+    bool script = false;
+    bool styleSheet = false;
+    bool subFrame = false;
+    bool webSocket = false;
+    bool xmlHttpRequest = false;
+};
+#endif
diff --git a/src/structs/OverrideStruct.h b/src/structs/OverrideStruct.h
deleted file mode 100644 (file)
index 25cb96d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
- *
- * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
- *
- * 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.
- *
- * 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
- * this program.  If not, see <https://www.gnu.org/licenses/>.
- */
-
-#ifndef OVERRIDESTRUCT_H
-#define OVERRIDESTRUCT_H
-
-struct OverrideStruct
-{
-    bool hasOverride = false;
-    bool font = false;
-    bool image = false;
-    bool mainFrame = false;
-    bool media = false;
-    bool object = false;
-    bool other = false;
-    bool ping = false;
-    bool script = false;
-    bool styleSheet = false;
-    bool subFrame = false;
-    bool webSocket = false;
-    bool xmlHttpRequest = false;
-};
-#endif
index 85a6eab6ce306409c29717fc3c9c29c6fdf869cf..d7d0d15b903e343458ba9d53d5e198c4ba601ca7 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2024 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2024-2025 Soren Stoutner <soren@stoutner.com>
  *
  * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
  *
@@ -21,7 +21,7 @@
 #define REQUEST_STRUCT_H
 
 // Application headers.
-#include "EntryStruct.h"
+#include "FilterListEntryStruct.h"
 
 enum RequestUrlType
 {
@@ -33,20 +33,29 @@ enum RequestUrlType
 
 struct RequestStruct
 {
+    // The ints.
     int dispositionInt = 0;  // `0` is the default disposition.
-    EntryStruct entryStruct;
-    QString filterListTitle;
-    QString firstPartyHost;
-    bool isThirdPartyRequest;
-    RequestUrlType matchedUrlType;
     int navigationTypeInt;
-    QString requestMethodString;
     int resourceTypeInt;
     int sublistInt = -1;  // The sublist should be initialized because it is not always set later.
+
+    // The bools.
+    bool isThirdPartyRequest;
+
+    // The enums.
+    RequestUrlType matchedUrlType;
+
+    // The strings.
+    QString filterListTitle;
+    QString firstPartyHost;
+    QString requestMethodString;
     QString truncatedUrlString;
     QString truncatedUrlStringWithSeparators;
     QString urlString;
     QString urlStringWithSeparators;
     QString webPageUrlString;
+
+    // The structs.
+    FilterListEntryStruct filterListEntryStruct;
 };
 #endif