diff options
| author | 2016-06-13 18:42:57 -0400 | |
|---|---|---|
| committer | 2016-06-13 18:42:57 -0400 | |
| commit | 65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch) | |
| tree | 6f245ba901b87ef42fed69965aea22f5eea6b590 /SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp | |
| parent | aeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff) | |
| parent | 5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (diff) | |
Merge tag 'upstream/3.1.0'
Upstream version 3.1.0
# gpg: Signature made Mon 13 Jun 2016 06:42:54 PM EDT using RSA key ID EBE9BD91
# gpg: Good signature from "Unit 193 <unit193@gmail.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.org>"
# gpg: aka "Unit 193 <unit193@ubuntu.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.com>"
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp index a3d0e65..6bdf41f 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp @@ -102,6 +102,9 @@ void DbDialog::showEvent(QShowEvent *e) updateOptions(); updateState(); + if (doAutoTest) + testConnectionClicked(); + QDialog::showEvent(e); } @@ -133,6 +136,9 @@ void DbDialog::init() generateNameSwitched(true); layout()->setSizeConstraint(QLayout::SetFixedSize); + + if (mode == Mode::ADD && CFG_UI.General.NewDbNotPermanentByDefault.get()) + ui->permamentCheckBox->setChecked(false); } void DbDialog::updateOptions() @@ -396,32 +402,11 @@ void DbDialog::updateType() if (disableTypeAutodetection) return; - QFileInfo file(ui->fileEdit->text()); - if (!file.exists() || file.isDir()) + DbPlugin* validPlugin = SQLITESTUDIO->getDbManager()->getPluginForDbFile(ui->fileEdit->text()); + if (!validPlugin || validPlugin->getLabel() == ui->typeCombo->currentText()) return; - QString currentPluginLabel = ui->typeCombo->currentText(); - QList<DbPlugin*> validPlugins; - QHash<QString,QVariant> options; - QString path = ui->fileEdit->text(); - Db* probeDb = nullptr; - for (DbPlugin* plugin : dbPlugins) - { - probeDb = plugin->getInstance("", path, options); - if (probeDb) - { - delete probeDb; - probeDb = nullptr; - - if (plugin->getLabel() == currentPluginLabel) - return; // current plugin is among valid plugins, no need to change anything - - validPlugins << plugin; - } - } - - if (validPlugins.size() > 0) - ui->typeCombo->setCurrentText(validPlugins.first()->getLabel()); + ui->typeCombo->setCurrentText(validPlugin->getLabel()); } QHash<QString, QVariant> DbDialog::collectOptions() @@ -486,10 +471,9 @@ bool DbDialog::validate() } } - Db* registeredDb = DBLIST->getByName(ui->nameEdit->text()); + Db* registeredDb = DBLIST->getByName(ui->nameEdit->text(), Qt::CaseInsensitive); if (registeredDb && (mode == Mode::ADD || registeredDb != db)) { - qDebug() << ui->generateCheckBox->isChecked(); setValidState(ui->nameEdit, false, tr("This name is already in use. Please enter unique name.")); return false; } @@ -534,6 +518,11 @@ void DbDialog::updateState() ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(validate()); } +void DbDialog::setDoAutoTest(bool value) +{ + doAutoTest = value; +} + void DbDialog::propertyChanged() { ui->testConnIcon->setVisible(false); @@ -543,7 +532,7 @@ void DbDialog::typeChanged(int index) { UNUSED(index); updateOptions(); - updateState(); + valueForNameGenerationChanged(); } void DbDialog::valueForNameGenerationChanged() @@ -552,13 +541,16 @@ void DbDialog::valueForNameGenerationChanged() if (!ui->generateCheckBox->isChecked()) return; + QString generatedName; if (dbPlugins.count() > 0) { DbPlugin* plugin = dbPlugins[ui->typeCombo->currentText()]; - QString generatedName = plugin->generateDbName(ui->fileEdit->text()); - generatedName = generateUniqueName(generatedName, existingDatabaseNames); - ui->nameEdit->setText(generatedName); + generatedName = DBLIST->generateUniqueDbName(plugin, ui->fileEdit->text()); } + else + generatedName = DBLIST->generateUniqueDbName(ui->fileEdit->text()); + + ui->nameEdit->setText(generatedName); } void DbDialog::browseForFile() |
