X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdialogs%2FFilterListsDialog.cpp;fp=src%2Fdialogs%2FFilterListsDialog.cpp;h=0ab6753780d1abe958ee75cd9830b8b5f46aebbe;hb=f8f8d907d0caa128abf73696f812f8e92db812b7;hp=dbba88e25863c6026c03acae73b7df7189fa0933;hpb=a44e607fb5398c80c5de2629017865ae749e8fbf;p=PrivacyBrowserPC.git diff --git a/src/dialogs/FilterListsDialog.cpp b/src/dialogs/FilterListsDialog.cpp index dbba88e..0ab6753 100644 --- a/src/dialogs/FilterListsDialog.cpp +++ b/src/dialogs/FilterListsDialog.cpp @@ -21,6 +21,7 @@ #include "FilterListsDialog.h" #include "GlobalVariables.h" #include "ui_FilterListsDialog.h" +#include "delegates/ViewAndCopyDelegate.h" // Qt toolkit headers. #include @@ -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;