X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fdialogs%2FDomainSettingsDialog.cpp;h=a8960cda3bfcc964053646cc7aa8cb5d252d2aac;hp=e44af92563d63fb62b6605b5e7ef144a4acce462;hb=455108aa18c90514c0dad3c12dfea98180dfb471;hpb=fe9f5cdee9e6e16eac1858f7f661516c24f71fa5 diff --git a/src/dialogs/DomainSettingsDialog.cpp b/src/dialogs/DomainSettingsDialog.cpp index e44af92..a8960cd 100644 --- a/src/dialogs/DomainSettingsDialog.cpp +++ b/src/dialogs/DomainSettingsDialog.cpp @@ -43,8 +43,12 @@ DomainSettingsDialog::DomainSettingsDialog(QWidget *parent) : QDialog(parent) domainNameLineEditPointer = domainSettingsDialogUi.domainNameLineEdit; javaScriptComboBoxPointer = domainSettingsDialogUi.javaScriptComboBox; javaScriptLabelPointer = domainSettingsDialogUi.javaScriptLabel; + localStorageComboBoxPointer = domainSettingsDialogUi.localStorageComboBox; + localStorageLabelPointer = domainSettingsDialogUi.localStorageLabel; userAgentComboBoxPointer = domainSettingsDialogUi.userAgentComboBox; userAgentLabelPointer = domainSettingsDialogUi.userAgentLabel; + zoomFactorComboBoxPointer = domainSettingsDialogUi.zoomFactorComboBox; + customZoomFactorSpinBoxPointer = domainSettingsDialogUi.customZoomFactorSpinBox; QPushButton *addDomainButtonPointer = domainSettingsDialogUi.addDomainButton; deleteDomainButtonPointer = domainSettingsDialogUi.deleteDomainButton; QDialogButtonBox *dialogButtonBoxPointer = domainSettingsDialogUi.dialogButtonBox; @@ -87,7 +91,10 @@ DomainSettingsDialog::DomainSettingsDialog(QWidget *parent) : QDialog(parent) // Connect 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(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))); // Connect the buttons. connect(addDomainButtonPointer, SIGNAL(released()), this, SLOT(showAddMessageBox())); @@ -135,17 +142,26 @@ void DomainSettingsDialog::cancel() reject(); } -void DomainSettingsDialog::domainNameChanged(QString updatedDomainName) const +void DomainSettingsDialog::customZoomFactorChanged(const double &newValue) const { // Update the domains table model. - domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex(), updatedDomainName); + domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::CUSTOM_ZOOM_FACTOR)), + newValue); // Update the UI. updateUi(); } +void DomainSettingsDialog::domainNameChanged(const QString &updatedDomainName) const +{ + // Update the domains table model. + domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex(), updatedDomainName); + + // Update the UI. + updateUi(); +} -void DomainSettingsDialog::domainSelected(QModelIndex modelIndex) const +void DomainSettingsDialog::domainSelected(const QModelIndex &modelIndex) const { // Populate the domain name line edit pointer. domainNameLineEditPointer->setText(modelIndex.data().toString()); @@ -153,6 +169,9 @@ void DomainSettingsDialog::domainSelected(QModelIndex modelIndex) const // Populate the JavaScript combo box. javaScriptComboBoxPointer->setCurrentIndex(modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT)).data().toInt()); + // Populate the local storage combo box. + localStorageComboBoxPointer->setCurrentIndex(modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_STORAGE)).data().toInt()); + // Get the user agent string. QString userAgent = modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::USER_AGENT)).data().toString(); @@ -165,15 +184,28 @@ void DomainSettingsDialog::domainSelected(QModelIndex modelIndex) const // Set the custom user agent if specified. if (userAgentIndex == -1) userAgentComboBoxPointer->setCurrentText(userAgent); + // Get the zoom factor combo box index. + int zoomFactorComboBoxIndex = modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::ZOOM_FACTOR)).data().toInt(); + + // Populate the zoom factor combo box. + zoomFactorComboBoxPointer->setCurrentIndex(zoomFactorComboBoxIndex); + + // Populate the custom zoom factor spin box. + customZoomFactorSpinBoxPointer->setValue(modelIndex.siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::CUSTOM_ZOOM_FACTOR)).data().toDouble()); + + // Set the initial visibility of the custom zoom factor spin box. + customZoomFactorSpinBoxPointer->setVisible(zoomFactorComboBoxIndex); + // Populate the labels. populateJavaScriptLabel(); + populateLocalStorageLabel(); populateUserAgentLabel(userAgentComboBoxPointer->currentText()); // Update the UI. updateUi(); } -void DomainSettingsDialog::javaScriptChanged(int newIndex) const +void DomainSettingsDialog::javaScriptChanged(const int &newIndex) const { // Update the domains table model. domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT)), @@ -186,6 +218,18 @@ void DomainSettingsDialog::javaScriptChanged(int newIndex) const updateUi(); } +void DomainSettingsDialog::localStorageChanged(const int &newIndex) const +{ + // Update the domains table model. + domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_STORAGE)), + newIndex); + + // Populate the local storage label. + populateLocalStorageLabel(); + + // Update the UI. + updateUi(); +} void DomainSettingsDialog::ok() { @@ -207,14 +251,40 @@ void DomainSettingsDialog::populateJavaScriptLabel() const case (DomainsDatabaseHelper::SYSTEM_DEFAULT): { // Set the text according to the system default. - if (Settings::javaScript()) - { - javaScriptLabelPointer->setText(i18nc("Domains settings labels", "JavaScript enabled")); - } - else - { - javaScriptLabelPointer->setText(i18nc("Domain settings labels", "JavaScript disabled")); - } + if (Settings::javaScript()) javaScriptLabelPointer->setText(i18nc("Domains settings label", "JavaScript enabled")); + else javaScriptLabelPointer->setText(i18nc("Domain settings label", "JavaScript disabled")); + + break; + } + + case (DomainsDatabaseHelper::DISABLED): + { + // Set the label text in bold. + javaScriptLabelPointer->setText(i18nc("Domain settings label. The tags should be retained.", "JavaScript disabled")); + + break; + } + + case (DomainsDatabaseHelper::ENABLED): + { + // Set the label text in bold. + javaScriptLabelPointer->setText(i18nc("Domains settings label. The tags should be retained.", "JavaScript enabled")); + + break; + } + } +} + +void DomainSettingsDialog::populateLocalStorageLabel() const +{ + // Populate the label according to the currently selected index. + switch (localStorageComboBoxPointer->currentIndex()) + { + 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")); break; } @@ -222,7 +292,7 @@ void DomainSettingsDialog::populateJavaScriptLabel() const case (DomainsDatabaseHelper::DISABLED): { // Set the label text in bold. - javaScriptLabelPointer->setText(i18nc("Domain settings labels. The tags should be retained.", "JavaScript disabled")); + localStorageLabelPointer->setText(i18nc("Local storage label. The tags should be retained.", "Local storage disabled")); break; } @@ -230,7 +300,7 @@ void DomainSettingsDialog::populateJavaScriptLabel() const case (DomainsDatabaseHelper::ENABLED): { // Set the label text in bold. - javaScriptLabelPointer->setText(i18nc("Domains settings labels. The tags should be retained.", "JavaScript enabled")); + localStorageLabelPointer->setText(i18nc("Local storage label. The tags should be retained.", "Local storage enabled")); break; } @@ -282,14 +352,13 @@ void DomainSettingsDialog::showAddMessageBox() // Create a new domain record. QSqlRecord newDomainRecord = QSqlDatabase::database(DomainsDatabaseHelper::CONNECTION_NAME).record(DomainsDatabaseHelper::DOMAINS_TABLE); - // Add the new domain name. + // Set the values for the new domain. newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOMAIN_NAME), newDomainName); - - // Set the default value of `0` for JavaScript. - newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT), 0); - - // Set the default value for the user agent. + newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::JAVASCRIPT), DomainsDatabaseHelper::SYSTEM_DEFAULT); + newDomainRecord.setValue(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::LOCAL_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); // Insert the new domain. `-1` appends it to the end. domainsTableModelPointer->insertRecord(-1, newDomainRecord); @@ -388,7 +457,7 @@ void DomainSettingsDialog::updateUi() const domainSettingsWidgetPointer->setVisible(domainsTableModelPointer->rowCount() > 0); } -void DomainSettingsDialog::userAgentChanged(const QString updatedUserAgent) const +void DomainSettingsDialog::userAgentChanged(const QString &updatedUserAgent) const { // Update the domains table model. domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::USER_AGENT)), @@ -401,4 +470,15 @@ void DomainSettingsDialog::userAgentChanged(const QString updatedUserAgent) cons updateUi(); } +void DomainSettingsDialog::zoomFactorComboBoxChanged(const int &newIndex) const +{ + // Update the domains table model. + domainsTableModelPointer->setData(domainsListViewPointer->selectionModel()->currentIndex().siblingAtColumn(domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::ZOOM_FACTOR)), + newIndex); + + // Update the visibility of the custom zoom factor spin box. + customZoomFactorSpinBoxPointer->setVisible(newIndex); + // Update the UI. + updateUi(); +}