X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fdialogs%2FDomainSettingsDialog.cpp;h=151a0b4926be9930962306e38fc1beeebfcd3e52;hp=32d61d09e4363401848c19eb39a1851d9cd7268f;hb=588db73b94af7b596b0e532f4557aa8b6c41f5c3;hpb=9b6cee96126484925bec4f4ab30c2b880df687fe diff --git a/src/dialogs/DomainSettingsDialog.cpp b/src/dialogs/DomainSettingsDialog.cpp index 32d61d0..151a0b4 100644 --- a/src/dialogs/DomainSettingsDialog.cpp +++ b/src/dialogs/DomainSettingsDialog.cpp @@ -34,6 +34,7 @@ const int DomainSettingsDialog::SHOW_ALL_DOMAINS = 0; const int DomainSettingsDialog::ADD_DOMAIN = 1; const int DomainSettingsDialog::EDIT_DOMAIN = 2; +// Construct the class. DomainSettingsDialog::DomainSettingsDialog(const int &startType, const QString &domainName) : QDialog(nullptr) { // Set the window title. @@ -48,7 +49,7 @@ DomainSettingsDialog::DomainSettingsDialog(const int &startType, const QString & // Setup the UI. domainSettingsDialogUi.setupUi(this); - // Get handles for the views. + // Get handles for the widgets. domainsListViewPointer = domainSettingsDialogUi.domainsListView; domainSettingsWidgetPointer = domainSettingsDialogUi.domainSettingsWidget; domainNameLineEditPointer = domainSettingsDialogUi.domainNameLineEdit; @@ -56,6 +57,8 @@ DomainSettingsDialog::DomainSettingsDialog(const int &startType, const QString & javaScriptLabelPointer = domainSettingsDialogUi.javaScriptLabel; localStorageComboBoxPointer = domainSettingsDialogUi.localStorageComboBox; localStorageLabelPointer = domainSettingsDialogUi.localStorageLabel; + domStorageComboBoxPointer = domainSettingsDialogUi.domStorageComboBox; + domStorageLabelPointer = domainSettingsDialogUi.domStorageLabel; userAgentComboBoxPointer = domainSettingsDialogUi.userAgentComboBox; userAgentLabelPointer = domainSettingsDialogUi.userAgentLabel; zoomFactorComboBoxPointer = domainSettingsDialogUi.zoomFactorComboBox; @@ -84,6 +87,9 @@ DomainSettingsDialog::DomainSettingsDialog(const int &startType, const QString & // Set the visible column to be the domain name. domainsListViewPointer->setModelColumn(1); + // Get the domains selection model pointer. + domainsSelectionModelPointer = domainsListViewPointer->selectionModel(); + // Disable editing of the list view. domainsListViewPointer->setEditTriggers(QAbstractItemView::NoEditTriggers); @@ -99,7 +105,7 @@ DomainSettingsDialog::DomainSettingsDialog(const int &startType, const QString & domainsListViewPointer->setCurrentIndex(domainsTableModelPointer->index(0, domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOMAIN_NAME))); // Populate the domain settings. - domainSelected(domainsListViewPointer->selectionModel()->currentIndex()); + domainSelected(domainsSelectionModelPointer->currentIndex()); break; } @@ -122,17 +128,20 @@ DomainSettingsDialog::DomainSettingsDialog(const int &startType, const QString & domainsListViewPointer->setCurrentIndex(newDomainIndex[0]); // Populate the domain settings. - domainSelected(domainsListViewPointer->selectionModel()->currentIndex()); + domainSelected(domainsSelectionModelPointer->currentIndex()); + + break; } } // Handle clicks on the domains. connect(domainsListViewPointer, SIGNAL(activated(QModelIndex)), this, SLOT(domainSelected(QModelIndex))); - // Connect the domain settings. + // Process changes to the domain settings. connect(domainNameLineEditPointer, SIGNAL(textEdited(QString)), this, SLOT(domainNameChanged(QString))); connect(javaScriptComboBoxPointer, SIGNAL(currentIndexChanged(int)), this, SLOT(javaScriptChanged(int))); connect(localStorageComboBoxPointer, SIGNAL(currentIndexChanged(int)), this, SLOT(localStorageChanged(int))); + connect(domStorageComboBoxPointer, SIGNAL(currentIndexChanged(int)), this, SLOT(domStorageChanged(int))); connect(userAgentComboBoxPointer, SIGNAL(currentTextChanged(QString)), this, SLOT(userAgentChanged(QString))); connect(zoomFactorComboBoxPointer, SIGNAL(currentIndexChanged(int)), this, SLOT(zoomFactorComboBoxChanged(int))); connect(customZoomFactorSpinBoxPointer, SIGNAL(valueChanged(double)), this, SLOT(customZoomFactorChanged(double))); @@ -157,7 +166,7 @@ void DomainSettingsDialog::addDomain(const QString &domainName) const // Set the values for the new domain. newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOMAIN_NAME), domainName); newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT), DomainsDatabaseHelper::SYSTEM_DEFAULT); - newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_STORAGE), DomainsDatabaseHelper::SYSTEM_DEFAULT); + newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOM_STORAGE), DomainsDatabaseHelper::SYSTEM_DEFAULT); newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::USER_AGENT), UserAgentHelper::SYSTEM_DEFAULT_DATABASE); newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::ZOOM_FACTOR), DomainsDatabaseHelper::SYSTEM_DEFAULT); newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::CUSTOM_ZOOM_FACTOR), 1.0); @@ -176,13 +185,12 @@ void DomainSettingsDialog::addDomain(const QString &domainName) const domainsListViewPointer->setCurrentIndex(newDomainIndex[newDomainIndex.size() - 1]); // Populate the domain settings. - domainSelected(domainsListViewPointer->selectionModel()->currentIndex()); + domainSelected(domainsSelectionModelPointer->currentIndex()); // Update the UI. updateUi(); } - void DomainSettingsDialog::apply() const { // Get the current index. @@ -220,8 +228,19 @@ void DomainSettingsDialog::cancel() void DomainSettingsDialog::customZoomFactorChanged(const double &newValue) const { // Update the domains table model. - domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::CUSTOM_ZOOM_FACTOR)), - newValue); + domainsTableModelPointer->setData(domainsSelectionModelPointer->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::CUSTOM_ZOOM_FACTOR)), newValue); + + // Update the UI. + updateUi(); +} + +void DomainSettingsDialog::domStorageChanged(const int &newIndex) const +{ + // Update the domains table model. + domainsTableModelPointer->setData(domainsSelectionModelPointer->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOM_STORAGE)), newIndex); + + // Populate the DOM storage label. + populateDomStorageLabel(); // Update the UI. updateUi(); @@ -230,7 +249,7 @@ void DomainSettingsDialog::customZoomFactorChanged(const double &newValue) const void DomainSettingsDialog::domainNameChanged(const QString &updatedDomainName) const { // Update the domains table model. - domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex(), updatedDomainName); + domainsTableModelPointer->setData(domainsSelectionModelPointer->currentIndex(), updatedDomainName); // Update the UI. updateUi(); @@ -247,6 +266,9 @@ void DomainSettingsDialog::domainSelected(const QModelIndex &modelIndex) const // Populate the local storage combo box. localStorageComboBoxPointer->setCurrentIndex(modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_STORAGE)).data().toInt()); + // Populate the DOM storage combo box. + domStorageComboBoxPointer->setCurrentIndex(modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOM_STORAGE)).data().toInt()); + // Get the user agent string. QString userAgent = modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::USER_AGENT)).data().toString(); @@ -283,6 +305,7 @@ void DomainSettingsDialog::domainSelected(const QModelIndex &modelIndex) const // Populate the labels. populateJavaScriptLabel(); populateLocalStorageLabel(); + populateDomStorageLabel(); populateUserAgentLabel(userAgentComboBoxPointer->currentText()); // Update the UI. @@ -292,8 +315,7 @@ void DomainSettingsDialog::domainSelected(const QModelIndex &modelIndex) const void DomainSettingsDialog::javaScriptChanged(const int &newIndex) const { // Update the domains table model. - domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT)), - newIndex); + domainsTableModelPointer->setData(domainsSelectionModelPointer->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT)), newIndex); // Populate the JavaScript label. populateJavaScriptLabel(); @@ -305,10 +327,9 @@ void DomainSettingsDialog::javaScriptChanged(const int &newIndex) const void DomainSettingsDialog::localStorageChanged(const int &newIndex) const { // Update the domains table model. - domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_STORAGE)), - newIndex); + domainsTableModelPointer->setData(domainsSelectionModelPointer->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_STORAGE)), newIndex); - // Populate the local storage label. + // Poplate the local storage label. populateLocalStorageLabel(); // Update the UI. @@ -327,32 +348,68 @@ void DomainSettingsDialog::ok() accept(); } +void DomainSettingsDialog::populateDomStorageLabel() const +{ + // Populate the label according to the currently selected index. + switch (domStorageComboBoxPointer->currentIndex()) + { + // Set the text according to the system default. + case (DomainsDatabaseHelper::SYSTEM_DEFAULT): + { + if (Settings::domStorageEnabled()) + domStorageLabelPointer->setText(i18nc("Domain settings DOM storage label.", "DOM storage enabled")); + else + domStorageLabelPointer->setText(i18nc("Domain settings DOM storage label.", "DOM storage disabled")); + + break; + } + + // Set the disabled text in bold. + case (DomainsDatabaseHelper::DISABLED): + { + domStorageLabelPointer->setText(i18nc("Domain settings DOM storage label. The tags should be retained.", "DOM storage disabled")); + + break; + } + + // Set the enabled text in bold. + case (DomainsDatabaseHelper::ENABLED): + { + domStorageLabelPointer->setText(i18nc("Domain settings DOM storage label. The tags should be retained.", "DOM storage enabled")); + + break; + } + } +} + void DomainSettingsDialog::populateJavaScriptLabel() const { // Populate the label according to the currently selected index. switch (javaScriptComboBoxPointer->currentIndex()) { + // Set the text according to the system default. case (DomainsDatabaseHelper::SYSTEM_DEFAULT): { - // Set the text according to the system default. - if (Settings::javaScript()) javaScriptLabelPointer->setText(i18nc("Domains settings label", "JavaScript enabled")); - else javaScriptLabelPointer->setText(i18nc("Domain settings label", "JavaScript disabled")); + if (Settings::javaScriptEnabled()) + javaScriptLabelPointer->setText(i18nc("Domain settings JavaScript label.", "JavaScript enabled")); + else + javaScriptLabelPointer->setText(i18nc("Domain settings JavaScript label.", "JavaScript disabled")); break; } + // Set the disabled text in bold. case (DomainsDatabaseHelper::DISABLED): { - // Set the label text in bold. - javaScriptLabelPointer->setText(i18nc("Domain settings label. The tags should be retained.", "JavaScript disabled")); + javaScriptLabelPointer->setText(i18nc("Domain settings JavaScript label. The tags should be retained.", "JavaScript disabled")); break; } + // Set the enabled text in bold. case (DomainsDatabaseHelper::ENABLED): { - // Set the label text in bold. - javaScriptLabelPointer->setText(i18nc("Domains settings label. The tags should be retained.", "JavaScript enabled")); + javaScriptLabelPointer->setText(i18nc("Domain settings JavaScript label. The tags should be retained.", "JavaScript enabled")); break; } @@ -364,33 +421,36 @@ void DomainSettingsDialog::populateLocalStorageLabel() const // Populate the label according to the currently selected index. switch (localStorageComboBoxPointer->currentIndex()) { + // Set the text according to the system default. case (DomainsDatabaseHelper::SYSTEM_DEFAULT): { - // Set the text according to the system default. - if (Settings::localStorage()) localStorageLabelPointer->setText(i18nc("Local storage label", "Local storage enabled")); - else localStorageLabelPointer->setText(i18nc("Local storage label", "Local storage disabled")); + if (Settings::localStorageEnabled()) + localStorageLabelPointer->setText(i18nc("Domain settings local storage label.", "Local storage enabled")); + else + localStorageLabelPointer->setText(i18nc("Domain settings local storage label.", "Local storage disabled")); break; } + // Set the disabled text in bold. case (DomainsDatabaseHelper::DISABLED): { - // Set the label text in bold. - localStorageLabelPointer->setText(i18nc("Local storage label. The tags should be retained.", "Local storage disabled")); + localStorageLabelPointer->setText(i18nc("Domain settings local storage label. The tags should be retained.", "Local storage disabled")); break; } + // Set the enabled text in bold. case (DomainsDatabaseHelper::ENABLED): { - // Set the label text in bold. - localStorageLabelPointer->setText(i18nc("Local storage label. The tags should be retained.", "Local storage enabled")); + localStorageLabelPointer->setText(i18nc("Domain settings local storage label. The tabs should be retained.", "Local storage enabled")); break; } } } + void DomainSettingsDialog::populateUserAgentLabel(const QString &userAgentName) const { // Populate the label according to the type. @@ -467,7 +527,7 @@ void DomainSettingsDialog::showDeleteMessageBox() const QModelIndex currentIndex = domainsListViewPointer->currentIndex(); // Delete the current row. - domainsTableModelPointer->removeRow(domainsListViewPointer->selectionModel()->currentIndex().row()); + domainsTableModelPointer->removeRow(domainsSelectionModelPointer->currentIndex().row()); // Submit all pending changes. domainsTableModelPointer->submitAll(); @@ -499,7 +559,7 @@ void DomainSettingsDialog::showDeleteMessageBox() const void DomainSettingsDialog::updateUi() const { // Update the delete button status. - deleteDomainButtonPointer->setEnabled(domainsListViewPointer->selectionModel()->hasSelection()); + deleteDomainButtonPointer->setEnabled(domainsSelectionModelPointer->hasSelection()); // Update the apply button status. applyButtonPointer->setEnabled(domainsTableModelPointer->isDirty()); @@ -514,7 +574,7 @@ void DomainSettingsDialog::updateUi() const void DomainSettingsDialog::userAgentChanged(const QString &updatedUserAgent) const { // Update the domains table model. - domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::USER_AGENT)), + domainsTableModelPointer->setData(domainsSelectionModelPointer->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::USER_AGENT)), UserAgentHelper::getDatabaseUserAgentNameFromTranslatedName(updatedUserAgent)); // Populate the user agent label. @@ -527,7 +587,7 @@ void DomainSettingsDialog::userAgentChanged(const QString &updatedUserAgent) con void DomainSettingsDialog::zoomFactorComboBoxChanged(const int &newIndex) const { // Get the current model index. - QModelIndex modelIndex = domainsListViewPointer->selectionModel()->currentIndex(); + QModelIndex modelIndex = domainsSelectionModelPointer->currentIndex(); // Update the domains table model. domainsTableModelPointer->setData(modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::ZOOM_FACTOR)), newIndex);