aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2018-07-27 23:51:12 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2018-07-27 23:51:12 -0400
commitfeda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (patch)
tree1e50f5f666f419143f510d5ded00fe2006b7bd85 /SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp
parentd9aa870e5d509cc7309ab82dd102a937ab58613a (diff)
New upstream version 3.2.1+dfsg1upstream/3.2.1+dfsg1
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp50
1 files changed, 49 insertions, 1 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp
index 2f52396..ddb443d 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp
@@ -6,7 +6,6 @@
#include "common/widgetcover.h"
#include "services/dbmanager.h"
#include "services/pluginmanager.h"
-#include "services/importmanager.h"
#include "sqlitestudio.h"
#include "plugins/importplugin.h"
#include "ui_importdialog.h"
@@ -19,6 +18,12 @@
#include <QFileDialog>
#include <QKeyEvent>
+static const QString IMPORT_DIALOG_CFG_GROUP = "ImportDialog";
+static const QString IMPORT_DIALOG_CFG_CODEC = "codec";
+static const QString IMPORT_DIALOG_CFG_FILE = "inputFileName";
+static const QString IMPORT_DIALOG_CFG_IGNORE_ERR = "ignoreErrors";
+static const QString IMPORT_DIALOG_CFG_FORMAT = "format";
+
ImportDialog::ImportDialog(QWidget *parent) :
QWizard(parent),
ui(new Ui::ImportDialog)
@@ -55,6 +60,43 @@ bool ImportDialog::isPluginConfigValid() const
return pluginConfigOk.size() == 0;
}
+void ImportDialog::storeStdConfig(ImportManager::StandardImportConfig &stdConfig)
+{
+ CFG->begin();
+ CFG->set(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_CODEC, stdConfig.codec);
+ CFG->set(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_FILE, stdConfig.inputFileName);
+ CFG->set(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_IGNORE_ERR, stdConfig.ignoreErrors);
+ CFG->set(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_FORMAT, currentPlugin->getDataSourceTypeName());
+ CFG->commit();
+}
+
+void ImportDialog::readStdConfig()
+{
+ QString format = CFG->get(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_FORMAT).toString();
+ int idx = ui->dsTypeCombo->findText(format);
+ if (idx > -1)
+ ui->dsTypeCombo->setCurrentIndex(idx);
+
+ ui->inputFileEdit->setText(CFG->get(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_FILE, QString()).toString());
+ ui->ignoreErrorsCheck->setChecked(CFG->get(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_IGNORE_ERR, false).toBool());
+
+ // Encoding
+ QString codec = CFG->get(IMPORT_DIALOG_CFG_GROUP, IMPORT_DIALOG_CFG_CODEC).toString();
+ QString defaultCodec = defaultCodecName();
+ if (codec.isNull())
+ codec = defaultCodec;
+
+ int codecIdx = ui->codecCombo->findText(codec);
+ if (codecIdx == -1 && codec != defaultCodec)
+ {
+ codec = defaultCodec;
+ codecIdx = ui->codecCombo->findText(codec);
+ }
+
+ if (codecIdx > -1)
+ ui->codecCombo->setCurrentIndex(codecIdx);
+}
+
void ImportDialog::init()
{
ui->setupUi(this);
@@ -303,7 +345,10 @@ void ImportDialog::updateValidation()
void ImportDialog::pageChanged()
{
if (currentPage() == ui->dsPage)
+ {
+ readStdConfig();
updateValidation();
+ }
}
void ImportDialog::browseForInputFile()
@@ -351,6 +396,9 @@ void ImportDialog::accept()
stdConfig.ignoreErrors = ui->ignoreErrorsCheck->isChecked();
+ storeStdConfig(stdConfig);
+ configMapper->saveFromWidget(pluginOptionsWidget);
+
Db* db = DBLIST->getByName(ui->dbNameCombo->currentText());;
if (!db)
{