void PreferencesDialog::saveSettings() { setSettingsValue("db", "defaultencoding", ui->encodingComboBox->currentText()); setSettingsValue("db", "defaultlocation", ui->locationEdit->text()); setSettingsValue("db", "savedefaultlocation", ui->comboDefaultLocation->currentIndex()); setSettingsValue("db", "hideschemalinebreaks", ui->checkHideSchemaLinebreaks->isChecked()); setSettingsValue("db", "foreignkeys", ui->foreignKeysCheckBox->isChecked()); setSettingsValue("db", "prefetchsize", ui->spinPrefetchSize->value()); setSettingsValue("db", "defaultsqltext", ui->editDatabaseDefaultSqlText->text()); setSettingsValue("checkversion", "enabled", ui->checkUpdates->isChecked()); setSettingsValue("databrowser", "font", ui->comboDataBrowserFont->currentText()); setSettingsValue("databrowser", "fontsize", ui->spinDataBrowserFontSize->value()); saveColorSetting(ui->fr_null_fg, "null_fg"); saveColorSetting(ui->fr_null_bg, "null_bg"); saveColorSetting(ui->fr_reg_fg, "reg_fg"); saveColorSetting(ui->fr_reg_bg, "reg_bg"); saveColorSetting(ui->fr_bin_fg, "bin_fg"); saveColorSetting(ui->fr_bin_bg, "bin_bg"); setSettingsValue("databrowser", "null_text", ui->txtNull->text()); setSettingsValue("databrowser", "filter_escape", ui->editFilterEscape->text()); setSettingsValue("databrowser", "filter_delay", ui->spinFilterDelay->value()); for(int i=0; i < ui->treeSyntaxHighlighting->topLevelItemCount(); ++i) { QString name = ui->treeSyntaxHighlighting->topLevelItem(i)->text(0); setSettingsValue("syntaxhighlighter", name + "_colour", ui->treeSyntaxHighlighting->topLevelItem(i)->text(2)); setSettingsValue("syntaxhighlighter", name + "_bold", ui->treeSyntaxHighlighting->topLevelItem(i)->checkState(3) == Qt::Checked); setSettingsValue("syntaxhighlighter", name + "_italic", ui->treeSyntaxHighlighting->topLevelItem(i)->checkState(4) == Qt::Checked); setSettingsValue("syntaxhighlighter", name + "_underline", ui->treeSyntaxHighlighting->topLevelItem(i)->checkState(5) == Qt::Checked); } setSettingsValue("editor", "font", ui->comboEditorFont->currentText()); setSettingsValue("editor", "fontsize", ui->spinEditorFontSize->value()); setSettingsValue("editor", "tabsize", ui->spinTabSize->value()); setSettingsValue("log", "fontsize", ui->spinLogFontSize->value()); setSettingsValue("editor", "auto_completion", ui->checkAutoCompletion->isChecked()); setSettingsValue("editor", "error_indicators", ui->checkErrorIndicators->isChecked()); setSettingsValue("editor", "horizontal_tiling", ui->checkHorizontalTiling->isChecked()); QStringList extList; foreach(QListWidgetItem* item, ui->listExtensions->findItems(QString("*"), Qt::MatchWrap | Qt::MatchWildcard)) extList.append(item->text()); setSettingsValue("extensions", "list", extList); setSettingsValue("extensions", "disableregex", ui->checkRegexDisabled->isChecked()); // Warn about restarting to change language QVariant newLanguage = ui->languageComboBox->itemData(ui->languageComboBox->currentIndex()); if (newLanguage != getSettingsValue("General", "language")) QMessageBox::information(this, QApplication::applicationName(), tr("The language will change after you restart the application.")); setSettingsValue("General", "language", newLanguage); accept(); }
void PreferencesDialog::saveSettings() { QApplication::setOverrideCursor(Qt::WaitCursor); Settings::setValue("db", "defaultencoding", ui->encodingComboBox->currentText()); Settings::setValue("db", "defaultlocation", ui->locationEdit->text()); Settings::setValue("db", "savedefaultlocation", ui->comboDefaultLocation->currentIndex()); Settings::setValue("db", "hideschemalinebreaks", ui->checkHideSchemaLinebreaks->isChecked()); Settings::setValue("db", "foreignkeys", ui->foreignKeysCheckBox->isChecked()); Settings::setValue("db", "prefetchsize", ui->spinPrefetchSize->value()); Settings::setValue("db", "defaultsqltext", ui->editDatabaseDefaultSqlText->text()); Settings::setValue("db", "defaultfieldtype", ui->defaultFieldTypeComboBox->currentIndex()); Settings::setValue("checkversion", "enabled", ui->checkUpdates->isChecked()); Settings::setValue("databrowser", "font", ui->comboDataBrowserFont->currentText()); Settings::setValue("databrowser", "fontsize", ui->spinDataBrowserFontSize->value()); saveColorSetting(ui->fr_null_fg, "null_fg"); saveColorSetting(ui->fr_null_bg, "null_bg"); saveColorSetting(ui->fr_reg_fg, "reg_fg"); saveColorSetting(ui->fr_reg_bg, "reg_bg"); saveColorSetting(ui->fr_bin_fg, "bin_fg"); saveColorSetting(ui->fr_bin_bg, "bin_bg"); Settings::setValue("databrowser", "symbol_limit", ui->spinSymbolLimit->value()); Settings::setValue("databrowser", "complete_threshold", ui->spinCompleteThreshold->value()); Settings::setValue("databrowser", "null_text", ui->txtNull->text()); Settings::setValue("databrowser", "blob_text", ui->txtBlob->text()); Settings::setValue("databrowser", "filter_escape", ui->editFilterEscape->text()); Settings::setValue("databrowser", "filter_delay", ui->spinFilterDelay->value()); for(int i=0; i < ui->treeSyntaxHighlighting->topLevelItemCount(); ++i) { std::string name = ui->treeSyntaxHighlighting->topLevelItem(i)->text(0).toStdString(); Settings::setValue("syntaxhighlighter", name + "_colour", ui->treeSyntaxHighlighting->topLevelItem(i)->text(2)); Settings::setValue("syntaxhighlighter", name + "_bold", ui->treeSyntaxHighlighting->topLevelItem(i)->checkState(3) == Qt::Checked); Settings::setValue("syntaxhighlighter", name + "_italic", ui->treeSyntaxHighlighting->topLevelItem(i)->checkState(4) == Qt::Checked); Settings::setValue("syntaxhighlighter", name + "_underline", ui->treeSyntaxHighlighting->topLevelItem(i)->checkState(5) == Qt::Checked); } Settings::setValue("editor", "font", ui->comboEditorFont->currentText()); Settings::setValue("editor", "fontsize", ui->spinEditorFontSize->value()); Settings::setValue("editor", "tabsize", ui->spinTabSize->value()); Settings::setValue("log", "fontsize", ui->spinLogFontSize->value()); Settings::setValue("editor", "wrap_lines", ui->wrapComboBox->currentIndex()); Settings::setValue("editor", "identifier_quotes", ui->quoteComboBox->currentIndex()); Settings::setValue("editor", "auto_completion", ui->checkAutoCompletion->isChecked()); Settings::setValue("editor", "upper_keywords", ui->checkCompleteUpper->isChecked()); Settings::setValue("editor", "error_indicators", ui->checkErrorIndicators->isChecked()); Settings::setValue("editor", "horizontal_tiling", ui->checkHorizontalTiling->isChecked()); QStringList extList; for(const QListWidgetItem* item : ui->listExtensions->findItems(QString("*"), Qt::MatchWrap | Qt::MatchWildcard)) extList.append(item->text()); Settings::setValue("extensions", "list", extList); Settings::setValue("extensions", "disableregex", ui->checkRegexDisabled->isChecked()); Settings::setValue("extensions", "enable_load_extension", ui->checkAllowLoadExtension->isChecked()); // Save remote settings Settings::setValue("remote", "active", ui->checkUseRemotes->isChecked()); QStringList old_client_certs = Settings::getValue("remote", "client_certificates").toStringList(); QStringList new_client_certs; for(int i=0;i<ui->tableClientCerts->rowCount();i++) { // Loop through the new list of client certs // If this certificate was already imported, remove it from the list of old certificates. All remaining certificates on this // list will be deleted later on. QString path = ui->tableClientCerts->item(i, 0)->text(); if(old_client_certs.contains(path)) { // This is a cert that is already imported old_client_certs.removeAll(path); new_client_certs.push_back(path); } else { // This is a new certificate. Copy file to a safe place. // Generate unique destination file name QString copy_to = QStandardPaths::writableLocation( #if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) QStandardPaths::AppDataLocation #else QStandardPaths::GenericDataLocation #endif ).append("/").append(QFileInfo(path).fileName()); int suffix = 0; do { suffix++; } while(QFile::exists(copy_to + QString::number(suffix))); // Copy file copy_to.append(QString::number(suffix)); QDir().mkpath(QStandardPaths::writableLocation( #if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) QStandardPaths::AppDataLocation #else QStandardPaths::GenericDataLocation #endif )); QFile::copy(path, copy_to); new_client_certs.push_back(copy_to); } } for(const QString& file : old_client_certs) { // Now only the deleted client certs are still in the old list. Delete the cert files associated with them. QFile::remove(file); } Settings::setValue("remote", "client_certificates", new_client_certs); Settings::setValue("remote", "clonedirectory", ui->editRemoteCloneDirectory->text()); // Warn about restarting to change language QVariant newLanguage = ui->languageComboBox->itemData(ui->languageComboBox->currentIndex()); if (newLanguage != Settings::getValue("General", "language")) QMessageBox::information(this, QApplication::applicationName(), tr("The language will change after you restart the application.")); Settings::setValue("General", "language", newLanguage); Settings::setValue("General", "appStyle", ui->appStyleCombo->currentIndex()); Settings::setValue("General", "toolbarStyle", ui->toolbarStyleComboMain->currentIndex()); Settings::setValue("General", "toolbarStyleStructure", ui->toolbarStyleComboStructure->currentIndex()); Settings::setValue("General", "toolbarStyleBrowse", ui->toolbarStyleComboBrowse->currentIndex()); Settings::setValue("General", "toolbarStyleSql", ui->toolbarStyleComboSql->currentIndex()); Settings::setValue("General", "toolbarStyleEditCell", ui->toolbarStyleComboEditCell->currentIndex()); Settings::setValue("General", "DBFileExtensions", m_dbFileExtensions.join(";;") ); m_proxyDialog->saveSettings(); accept(); QApplication::restoreOverrideCursor(); }