]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/dialogs/FilterListsDialog.cpp
Filter options implementation.
[PrivacyBrowserPC.git] / src / dialogs / FilterListsDialog.cpp
index dbba88e25863c6026c03acae73b7df7189fa0933..0ab6753780d1abe958ee75cd9830b8b5f46aebbe 100644 (file)
@@ -21,6 +21,7 @@
 #include "FilterListsDialog.h"
 #include "GlobalVariables.h"
 #include "ui_FilterListsDialog.h"
+#include "delegates/ViewAndCopyDelegate.h"
 
 // Qt toolkit headers.
 #include <QFile>
@@ -48,6 +49,12 @@ FilterListsDialog::FilterListsDialog(QWidget *parentWidgetPointer) : QDialog(par
     sublistTableWidgetPointer = filterListsDialogUi.sublistTableWidget;
     QDialogButtonBox *dialogButtonBoxPointer = filterListsDialogUi.dialogButtonBox;
 
+    // Create a view and copy delegate.
+    ViewAndCopyDelegate *viewAndCopyDelegate = new ViewAndCopyDelegate(this);
+
+    // Set the sublist table widget allow copying but not editing.
+    sublistTableWidgetPointer->setItemDelegate(viewAndCopyDelegate);
+
     // Connect the combo boxes.
     connect(filterListComboBoxPointer, SIGNAL(currentIndexChanged(int)), this, SLOT(populateFilterListTextEdit(int)));
     connect(sublistComboBoxPointer, SIGNAL(currentIndexChanged(int)), this, SLOT(populateTableWidget(int)));
@@ -113,14 +120,20 @@ void FilterListsDialog::populateFilterListTextEdit(int filterListComboBoxInt) co
     // Clear the sublist combo box.
     sublistComboBoxPointer->clear();
 
-    // Calculate the size of the main filter list.
+    // Calculate the size of the filter lists.
+    int mainAllowListSize = distance(filterListStructPointer->mainAllowList.begin(), filterListStructPointer->mainAllowList.end());
     int mainBlockListSize = distance(filterListStructPointer->mainBlockList.begin(), filterListStructPointer->mainBlockList.end());
+    int initialDomainBlockListSize = distance(filterListStructPointer->initialDomainBlockList.begin(), filterListStructPointer->initialDomainBlockList.end());
 
     // Get the translated filter list names.
+    QString mainAllowListName = globalFilterListHelperPointer->getSublistName(FilterListHelper::MAIN_ALLOWLIST);
     QString mainBlockListName = globalFilterListHelperPointer->getSublistName(FilterListHelper::MAIN_BLOCKLIST);
+    QString initialDomainBlockListName = globalFilterListHelperPointer->getSublistName(FilterListHelper::INITIAL_DOMAIN_BLOCKLIST);
 
     // Populate the sublist combo box.
+    sublistComboBoxPointer->addItem(i18nc("The main allow list", "%1 - %2", mainAllowListName, mainAllowListSize));
     sublistComboBoxPointer->addItem(i18nc("The main block list", "%1 - %2", mainBlockListName, mainBlockListSize));
+    sublistComboBoxPointer->addItem(i18nc("The initial domain block list", "%1 - %2", initialDomainBlockListName, initialDomainBlockListSize));
 }
 
 void FilterListsDialog::populateTableWidget(int sublistComboBoxIndex) const
@@ -163,21 +176,55 @@ void FilterListsDialog::populateTableWidget(int sublistComboBoxIndex) const
     // Populate the filter list forward list.
     switch (sublistComboBoxIndex)
     {
-        case 0:  // Main block list.
+        case FilterListHelper::MAIN_ALLOWLIST:  // The main allow list.
+            filterListForwardList = filterListStructPointer->mainAllowList;
+            break;
+
+        case FilterListHelper::MAIN_BLOCKLIST:  // The main block list.
             filterListForwardList = filterListStructPointer->mainBlockList;
             break;
+
+        case FilterListHelper::INITIAL_DOMAIN_BLOCKLIST:  // The initial domain block list.
+            filterListForwardList = filterListStructPointer->initialDomainBlockList;
+            break;
     }
 
     // Create the columns.
-    sublistTableWidgetPointer->setColumnCount(2);
+    sublistTableWidgetPointer->setColumnCount(15);
 
     // Create the table headers.
     QTableWidgetItem *appliedEntryHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist applied entry header", "Applied Entry"));
+    QTableWidgetItem *thirdPartyHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist third-party header", "Third-Party"));
+    QTableWidgetItem *fontHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist font header", "Font"));
+    QTableWidgetItem *imageHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist image header", "Image"));
+    QTableWidgetItem *mainFrameHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist main frame header", "Main Frame"));
+    QTableWidgetItem *mediaHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist media header", "Media"));
+    QTableWidgetItem *objectHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist object header", "Object"));
+    QTableWidgetItem *otherHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist object header", "Other"));
+    QTableWidgetItem *pingHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist ping header", "Ping"));
+    QTableWidgetItem *scriptHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist script header", "Script"));
+    QTableWidgetItem *styleSheetHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist style sheet header", "Style Sheet"));
+    QTableWidgetItem *subFrameHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist sub frame header", "Sub Frame"));
+    QTableWidgetItem *xmlHttpRequestHeaderItemPointer = new QTableWidgetItem(i18nc("XML HTTP request header", "XML HTTP Request"));
+    QTableWidgetItem *filterOptionsHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist filter options header", "Filter Options"));
     QTableWidgetItem *originalEntryHeaderItemPointer = new QTableWidgetItem(i18nc("Sublist original entry header", "Original Entry"));
 
     // Set the horizontal headers.
     sublistTableWidgetPointer->setHorizontalHeaderItem(0, appliedEntryHeaderItemPointer);
-    sublistTableWidgetPointer->setHorizontalHeaderItem(1, originalEntryHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(1, thirdPartyHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(2, fontHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(3, imageHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(4, mainFrameHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(5, mediaHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(6, objectHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(7, otherHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(8, pingHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(9, scriptHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(10, styleSheetHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(11, subFrameHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(12, xmlHttpRequestHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(13, filterOptionsHeaderItemPointer);
+    sublistTableWidgetPointer->setHorizontalHeaderItem(14, originalEntryHeaderItemPointer);
 
     // Initialize the row counter.
     int rowCounter = 0;
@@ -192,11 +239,37 @@ void FilterListsDialog::populateTableWidget(int sublistComboBoxIndex) const
 
         // Create the entry items.
         QTableWidgetItem *appliedEntryItemPointer = new QTableWidgetItem(entryStructPointer->appliedEntry);
+        QTableWidgetItem *thirdPartyItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->thirdParty));
+        QTableWidgetItem *fontItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->font));
+        QTableWidgetItem *imageItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->image));
+        QTableWidgetItem *mainFrameItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->mainFrame));
+        QTableWidgetItem *mediaItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->media));
+        QTableWidgetItem *objectItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->object));
+        QTableWidgetItem *otherItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->other));
+        QTableWidgetItem *pingItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->ping));
+        QTableWidgetItem *scriptItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->script));
+        QTableWidgetItem *styleSheetItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->styleSheet));
+        QTableWidgetItem *subFrameItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->subFrame));
+        QTableWidgetItem *xmlHttpRequestItemPointer = new QTableWidgetItem(globalFilterListHelperPointer->getFilterOptionDispositionString(entryStructPointer->xmlHttpRequest));
+        QTableWidgetItem *filterOptionsItemPointer = new QTableWidgetItem(entryStructPointer->filterOptions);
         QTableWidgetItem *originalEntryItemPointer = new QTableWidgetItem(entryStructPointer->originalEntry);
 
         // Add the entries to the table.
         sublistTableWidgetPointer->setItem(rowCounter, 0, appliedEntryItemPointer);
-        sublistTableWidgetPointer->setItem(rowCounter, 1, originalEntryItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 1, thirdPartyItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 2, fontItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 3, imageItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 4, mainFrameItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 5, mediaItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 6, objectItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 7, otherItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 8, pingItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 9, scriptItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 10, styleSheetItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 11, subFrameItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 12, xmlHttpRequestItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 13, filterOptionsItemPointer);
+        sublistTableWidgetPointer->setItem(rowCounter, 14, originalEntryItemPointer);
 
         // Increment the row counter.
         ++rowCounter;