mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-20 11:00:44 -06:00
Don't query foreign key settings repeatedly in Edit Table dialog
When changing the table name in the Edit Table dialog, don't query the foreign key pragma for every key stroke. See issue #1130.
This commit is contained in:
@@ -56,6 +56,9 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier&
|
||||
// And create a savepoint
|
||||
pdb.setSavepoint(m_sRestorePointName);
|
||||
|
||||
// Check now if foreign keys are enabled so we don't have to query this later again and again
|
||||
m_bForeignKeysEnabled = (pdb.getPragma("foreign_keys") == "1");
|
||||
|
||||
// Update UI
|
||||
ui->editTableName->setText(curTable.name());
|
||||
updateColumnWidth();
|
||||
@@ -206,8 +209,6 @@ void EditTableDialog::checkInput()
|
||||
m_table.setName(normTableName);
|
||||
m_fkEditorDelegate->updateTablesList(oldTableName);
|
||||
|
||||
bool fksEnabled = (pdb.getPragma("foreign_keys") == "1");
|
||||
|
||||
// update fk's that refer to table itself recursively
|
||||
sqlb::FieldVector fields = m_table.fields();
|
||||
foreach(sqlb::FieldPtr f, fields) {
|
||||
@@ -215,7 +216,7 @@ void EditTableDialog::checkInput()
|
||||
if(!fk.isNull()) {
|
||||
if (oldTableName == fk->table()) {
|
||||
fk->setTable(normTableName);
|
||||
if(!fksEnabled)
|
||||
if(!m_bForeignKeysEnabled)
|
||||
pdb.renameColumn(curTable, m_table, f->name(), f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ private:
|
||||
QStringList fields;
|
||||
bool m_bNewTable;
|
||||
QString m_sRestorePointName;
|
||||
bool m_bForeignKeysEnabled;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user