Fix editing of foreign keys in Edit Table dialog

Fix a bug when removing a foreign key from a table.

Fix a bug when editing an existing foreign key on a table.

See issue #918.
This commit is contained in:
Martin Kleusberg
2017-01-04 19:32:06 +01:00
parent 63ba2c5059
commit d3ac0bdb81
3 changed files with 20 additions and 3 deletions

View File

@@ -440,9 +440,16 @@ void EditTableDialog::itemChanged(QTreeWidgetItem *item, int column)
callRenameColumn = true;
break;
case kForeignKey:
sqlb::ForeignKeyClause* fk = new sqlb::ForeignKeyClause;
fk->setFromString(item->text(column));
m_table.addConstraint({field}, sqlb::ConstraintPtr(fk));
if(item->text(column).trimmed().isEmpty())
{
// Remove the foreign key
m_table.removeConstraints({field}, sqlb::Constraint::ConstraintTypes::ForeignKeyConstraintType);
} else {
// Set the foreign key
sqlb::ForeignKeyClause* fk = new sqlb::ForeignKeyClause;
fk->setFromString(item->text(column));
m_table.setConstraint({field}, sqlb::ConstraintPtr(fk));
}
if(!m_bNewTable)
callRenameColumn = true;
break;