diff --git a/src/ExportSqlDialog.cpp b/src/ExportSqlDialog.cpp index 980e118d..72bd5c93 100644 --- a/src/ExportSqlDialog.cpp +++ b/src/ExportSqlDialog.cpp @@ -2,15 +2,10 @@ #include "ui_ExportSqlDialog.h" #include "sqlitedb.h" #include "FileDialog.h" +#include "Settings.h" #include #include -#include - -static QString sSettingsGroup("exportsql"); -static QString sSettingsInsertColNames("insertcolnames"); -static QString sSettingsInsertMultiple("insertmultiple"); -static QString sSettingsOldSchema("oldschema"); enum WhatComboEntries { @@ -27,11 +22,10 @@ ExportSqlDialog::ExportSqlDialog(DBBrowserDB* db, QWidget* parent, const QString // Create UI ui->setupUi(this); - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - settings.beginGroup(sSettingsGroup); - ui->checkColNames->setChecked(settings.value(sSettingsInsertColNames, false).toBool()); - ui->checkMultiple->setChecked(settings.value(sSettingsInsertMultiple, false).toBool()); - ui->comboOldSchema->setCurrentIndex(settings.value(sSettingsOldSchema, 0).toInt()); + // Load settings + ui->checkColNames->setChecked(Settings::getValue("exportsql", "insertcolnames").toBool()); + ui->checkColNames->setChecked(Settings::getValue("exportsql", "insertmultiple").toBool()); + ui->comboOldSchema->setCurrentIndex(Settings::getValue("exportsql", "oldschema").toInt()); // Get list of tables to export objectMap objects = pdb->getBrowsableObjects("main"); @@ -96,13 +90,10 @@ void ExportSqlDialog::accept() if(fileName.isEmpty()) return; - // save settings - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - settings.beginGroup(sSettingsGroup); - settings.setValue(sSettingsInsertColNames, ui->checkColNames->isChecked()); - settings.setValue(sSettingsInsertMultiple, ui->checkMultiple->isChecked()); - settings.setValue(sSettingsOldSchema, ui->comboOldSchema->currentIndex()); - settings.endGroup(); + // Save settings + Settings::setValue("exportsql", "insertcolnames", ui->checkColNames->isChecked()); + Settings::setValue("exportsql", "insertmultiple", ui->checkMultiple->isChecked()); + Settings::setValue("exportsql", "oldschema", ui->comboOldSchema->currentIndex()); QStringList tables; for(const QListWidgetItem* item : ui->listTables->selectedItems()) diff --git a/src/ImportCsvDialog.cpp b/src/ImportCsvDialog.cpp index 98d047b5..58fd7b35 100644 --- a/src/ImportCsvDialog.cpp +++ b/src/ImportCsvDialog.cpp @@ -3,6 +3,7 @@ #include "sqlitedb.h" #include "csvparser.h" #include "sqlite.h" +#include "Settings.h" #include #include @@ -13,7 +14,6 @@ #include #include #include -#include #include #include @@ -54,13 +54,12 @@ ImportCsvDialog::ImportCsvDialog(const QStringList &filenames, DBBrowserDB* db, ui->comboQuote->blockSignals(true); ui->comboEncoding->blockSignals(true); - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - ui->checkboxHeader->setChecked(settings.value("importcsv/firstrowheader", false).toBool()); - ui->checkBoxTrimFields->setChecked(settings.value("importcsv/trimfields", true).toBool()); - ui->checkBoxSeparateTables->setChecked(settings.value("importcsv/separatetables", false).toBool()); - setSeparatorChar(QChar(settings.value("importcsv/separator", ',').toInt())); - setQuoteChar(QChar(settings.value("importcsv/quotecharacter", '"').toInt())); - setEncoding(settings.value("importcsv/encoding", "UTF-8").toString()); + ui->checkboxHeader->setChecked(Settings::getValue("importcsv", "firstrowheader").toBool()); + ui->checkBoxTrimFields->setChecked(Settings::getValue("importcsv", "trimfields").toBool()); + ui->checkBoxSeparateTables->setChecked(Settings::getValue("importcsv", "separatetables").toBool()); + setSeparatorChar(Settings::getValue("importcsv", "separator").toChar()); + setQuoteChar(Settings::getValue("importcsv", "quotecharacter").toChar()); + setEncoding(Settings::getValue("importcsv", "encoding").toString()); ui->checkboxHeader->blockSignals(false); ui->checkBoxTrimFields->blockSignals(false); @@ -157,16 +156,13 @@ private: void ImportCsvDialog::accept() { - // save settings - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - settings.beginGroup("importcsv"); - settings.setValue("firstrowheader", ui->checkboxHeader->isChecked()); - settings.setValue("separator", currentSeparatorChar()); - settings.setValue("quotecharacter", currentQuoteChar()); - settings.setValue("trimfields", ui->checkBoxTrimFields->isChecked()); - settings.setValue("separatetables", ui->checkBoxSeparateTables->isChecked()); - settings.setValue("encoding", currentEncoding()); - settings.endGroup(); + // Save settings + Settings::setValue("importcsv", "firstrowheader", ui->checkboxHeader->isChecked()); + Settings::setValue("importcsv", "separator", currentSeparatorChar()); + Settings::setValue("importcsv", "quotecharacter", currentQuoteChar()); + Settings::setValue("importcsv", "trimfields", ui->checkBoxTrimFields->isChecked()); + Settings::setValue("importcsv", "separatetables", ui->checkBoxSeparateTables->isChecked()); + Settings::setValue("importcsv", "encoding", currentEncoding()); // Get all the selected files and start the import if (ui->filePickerBlock->isVisible()) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index c93ee118..d726bc27 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include @@ -1909,10 +1908,9 @@ void MainWindow::checkNewVersion(const QString& versionstring, const QString& ur if(newversion) { - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - int ignmajor = settings.value("checkversion/ignmajor", 999).toInt(); - int ignminor = settings.value("checkversion/ignminor", 0).toInt(); - int ignpatch = settings.value("checkversion/ignpatch", 0).toInt(); + int ignmajor = Settings::getValue("checkversion", "ignmajor").toInt(); + int ignminor = Settings::getValue("checkversion", "ignminor").toInt(); + int ignpatch = Settings::getValue("checkversion", "ignpatch").toInt(); // check if the user doesn't care about the current update if(!(ignmajor == major && ignminor == minor && ignpatch == patch)) @@ -1930,11 +1928,9 @@ void MainWindow::checkNewVersion(const QString& versionstring, const QString& ur if(msgBox.clickedButton() == idontcarebutton) { // save that the user don't want to get bothered about this update - settings.beginGroup("checkversion"); - settings.setValue("ignmajor", major); - settings.setValue("ignminor", minor); - settings.setValue("ignpatch", patch); - settings.endGroup(); + Settings::setValue("checkversion", "ignmajor", major); + Settings::setValue("checkversion", "ignminor", minor); + Settings::setValue("checkversion", "ignpatch", patch); } } } diff --git a/src/Settings.cpp b/src/Settings.cpp index df02d447..94137820 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -90,6 +90,32 @@ QVariant Settings::getDefaultValue(const QString& group, const QString& name) if(group == "exportcsv" && name == "quotecharacter") return '"'; + // importcsv group? + if(group == "importcsv") + { + if(name == "firstrowheader") + return false; + if(name == "trimfields") + return true; + if(name == "separatetables") + return false; + if(name == "separator") + return ','; + if(name == "quotecharacter") + return '"'; + if(name == "encoding") + return "UTF-8"; + } + + // exportsql group? + if(group == "exportsql") + { + if(name == "insertcolnames" || name == "insertmultiple") + return false; + if(name == "oldschema") + return 0; + } + // newline character if (group == "exportcsv" && name == "newlinecharacters") #ifdef Q_OS_WIN @@ -122,9 +148,16 @@ QVariant Settings::getDefaultValue(const QString& group, const QString& name) if(group == "General" && name == "language") return QLocale::system().name(); - // checkversion/enabled - if(group == "checkversion" && name == "enabled") - return true; + // checkversion group? + if(group == "checkversion") + { + if(name == "enabled") + return true; + if(name == "ignmajor") + return 999; + if(name == "ignminor" || name == "ignpatch") + return 0; + } // Data Browser/NULL Fields if(group == "databrowser")