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.
// 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;
javaScriptLabelPointer = domainSettingsDialogUi.javaScriptLabel;
localStorageComboBoxPointer = domainSettingsDialogUi.localStorageComboBox;
localStorageLabelPointer = domainSettingsDialogUi.localStorageLabel;
+ domStorageComboBoxPointer = domainSettingsDialogUi.domStorageComboBox;
+ domStorageLabelPointer = domainSettingsDialogUi.domStorageLabel;
userAgentComboBoxPointer = domainSettingsDialogUi.userAgentComboBox;
userAgentLabelPointer = domainSettingsDialogUi.userAgentLabel;
zoomFactorComboBoxPointer = domainSettingsDialogUi.zoomFactorComboBox;
// 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);
domainsListViewPointer->setCurrentIndex(domainsTableModelPointer->index(0, domainsTableModelPointer->fieldIndex(DomainsDatabaseHelper::DOMAIN_NAME)));
// Populate the domain settings.
- domainSelected(domainsListViewPointer->selectionModel()->currentIndex());
+ domainSelected(domainsSelectionModelPointer->currentIndex());
break;
}
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)));
// 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);
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.
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();
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();
// 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();
// Populate the labels.
populateJavaScriptLabel();
populateLocalStorageLabel();
+ populateDomStorageLabel();
populateUserAgentLabel(userAgentComboBoxPointer->currentText());
// Update the UI.
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();
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.
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 <b> tags should be retained.", "<b>DOM storage disabled</b>"));
+
+ break;
+ }
+
+ // Set the enabled text in bold.
+ case (DomainsDatabaseHelper::ENABLED):
+ {
+ domStorageLabelPointer->setText(i18nc("Domain settings DOM storage label. The <b> tags should be retained.", "<b>DOM storage enabled</b>"));
+
+ 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 <strong> tags should be retained.", "<strong>JavaScript disabled</strong>"));
+ javaScriptLabelPointer->setText(i18nc("Domain settings JavaScript label. The <b> tags should be retained.", "<b>JavaScript disabled</b>"));
break;
}
+ // Set the enabled text in bold.
case (DomainsDatabaseHelper::ENABLED):
{
- // Set the label text in bold.
- javaScriptLabelPointer->setText(i18nc("Domains settings label. The <strong> tags should be retained.", "<strong>JavaScript enabled</strong>"));
+ javaScriptLabelPointer->setText(i18nc("Domain settings JavaScript label. The <b> tags should be retained.", "<b>JavaScript enabled</b>"));
break;
}
// 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 <string> tags should be retained.", "<strong>Local storage disabled</strong>"));
+ localStorageLabelPointer->setText(i18nc("Domain settings local storage label. The <b> tags should be retained.", "<b>Local storage disabled</b>"));
break;
}
+ // Set the enabled text in bold.
case (DomainsDatabaseHelper::ENABLED):
{
- // Set the label text in bold.
- localStorageLabelPointer->setText(i18nc("Local storage label. The <strong> tags should be retained.", "<strong>Local storage enabled</strong>"));
+ localStorageLabelPointer->setText(i18nc("Domain settings local storage label. The <b> tabs should be retained.", "<b>Local storage enabled</b>"));
break;
}
}
}
+
void DomainSettingsDialog::populateUserAgentLabel(const QString &userAgentName) const
{
// Populate the label according to the type.
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();
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());
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.
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);