summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp22
1 files changed, 11 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;
}