#include "FilterListsDialog.h"
#include "GlobalVariables.h"
#include "ui_FilterListsDialog.h"
+#include "delegates/ViewAndCopyDelegate.h"
// Qt toolkit headers.
#include <QFile>
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)));
// 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
// 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;
// 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;