aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2015-04-19 22:30:21 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2015-04-19 22:30:21 -0400
commita308f430f694423064ebc86fd0506c8c6fdb3d93 (patch)
treeceacd24fecf92f40980f8d8f3fd169e317c886af /SQLiteStudio3/guiSQLiteStudio/dialogs
parenta5b034d4a9c44f9bc1e83b01de82530f8fc63013 (diff)
Imported Upstream version 3.0.5upstream/3.0.5
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp22
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp13
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.h2
3 files changed, 26 insertions, 11 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp
index 05d50af..ac7cd8a 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp
@@ -455,10 +455,6 @@ bool DbDialog::testDatabase()
if (url.scheme().isEmpty())
url.setScheme("file");
- bool existed = false;
- if (url.isLocalFile() && QFile::exists(path))
- existed = QFile::exists(path);
-
QHash<QString, QVariant> options = collectOptions();
DbPlugin* plugin = dbPlugins[ui->typeCombo->currentText()];
Db* testDb = plugin->getInstance("", path, options);
@@ -466,15 +462,14 @@ bool DbDialog::testDatabase()
bool res = false;
if (testDb)
{
- res = true;
+ if (testDb->openForProbing())
+ {
+ res = !testDb->getEncoding().isEmpty();
+ testDb->closeQuiet();
+ }
delete testDb;
}
- if (!existed)
- {
- QFile file(path);
- file.remove();
- }
return res;
}
@@ -605,7 +600,12 @@ void DbDialog::browseClicked()
{
if (customBrowseHandler)
{
- customBrowseHandler(ui->fileEdit->text());
+ QString newUrl = customBrowseHandler(ui->fileEdit->text());
+ if (!newUrl.isNull())
+ {
+ ui->fileEdit->setText(newUrl);
+ updateState();
+ }
return;
}
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp
index ca3fd31..7861ff0 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp
@@ -51,7 +51,9 @@ void PopulateDialog::init()
pluginTitles << plugin->getTitle();
widgetCover = new WidgetCover(this);
+ widgetCover->initWithInterruptContainer(tr("Abort"));
widgetCover->setVisible(false);
+ connect(widgetCover, SIGNAL(cancelClicked()), POPULATE_MANAGER, SLOT(interrupt()));
ui->scrollArea->setAutoFillBackground(false);
ui->scrollArea->viewport()->setAutoFillBackground(false);
@@ -71,6 +73,7 @@ void PopulateDialog::init()
connect(ui->databaseCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(refreshTables()));
connect(ui->tableCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(refreshColumns()));
connect(POPULATE_MANAGER, SIGNAL(populatingFinished()), widgetCover, SLOT(hide()));
+ connect(POPULATE_MANAGER, SIGNAL(finishedStep(int)), widgetCover, SLOT(setProgress(int)));
connect(POPULATE_MANAGER, SIGNAL(populatingSuccessful()), this, SLOT(finished()));
}
@@ -317,10 +320,20 @@ void PopulateDialog::accept()
QString table = ui->tableCombo->currentText();
qint64 rows = ui->rowsSpin->value();
+ started = true;
+ widgetCover->displayProgress(rows, "%v / %m");
widgetCover->show();
POPULATE_MANAGER->populate(db, table, engines, rows);
}
+void PopulateDialog::reject()
+{
+ if (started)
+ POPULATE_MANAGER->interrupt();
+
+ QDialog::reject();
+}
+
PopulateDialog::ColumnEntry::ColumnEntry(QCheckBox* check, QComboBox* combo, QToolButton* button) :
check(check), combo(combo), button(button)
{
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.h
index 0ecc318..948d6ce 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.h
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.h
@@ -58,6 +58,7 @@ class GUI_API_EXPORT PopulateDialog : public QDialog
QSignalMapper* buttonMapper = nullptr;
QHash<int,bool> columnsValid;
WidgetCover* widgetCover = nullptr;
+ bool started = false;
private slots:
void refreshTables();
@@ -71,6 +72,7 @@ class GUI_API_EXPORT PopulateDialog : public QDialog
public:
void accept();
+ void reject();
};
#endif // POPULATEDIALOG_H