diff --git a/src/EditTableDialog.cpp b/src/EditTableDialog.cpp
index dffb2bca..bdb9dab6 100644
--- a/src/EditTableDialog.cpp
+++ b/src/EditTableDialog.cpp
@@ -49,11 +49,11 @@ EditTableDialog::~EditTableDialog()
void EditTableDialog::updateColumnWidth()
{
- ui->treeWidget->setColumnWidth(kName, 200);
+ ui->treeWidget->setColumnWidth(kName, 190);
ui->treeWidget->setColumnWidth(kType, 80);
- ui->treeWidget->setColumnWidth(kNotNull, 50);
- ui->treeWidget->setColumnWidth(kPrimaryKey, 50);
- ui->treeWidget->setColumnWidth(kAutoIncrement, 50);
+ ui->treeWidget->setColumnWidth(kNotNull, 30);
+ ui->treeWidget->setColumnWidth(kPrimaryKey, 30);
+ ui->treeWidget->setColumnWidth(kAutoIncrement, 30);
}
void EditTableDialog::populateFields()
@@ -87,6 +87,8 @@ void EditTableDialog::populateFields()
tbitem->setCheckState(kNotNull, f->notnull() ? Qt::Checked : Qt::Unchecked);
tbitem->setCheckState(kPrimaryKey, m_table.primarykey().contains(f) ? Qt::Checked : Qt::Unchecked);
tbitem->setCheckState(kAutoIncrement, f->autoIncrement() ? Qt::Checked : Qt::Unchecked);
+ tbitem->setText(kDefault, f->defaultValue());
+ tbitem->setText(kCheck, f->check());
ui->treeWidget->addTopLevelItem(tbitem);
}
@@ -167,6 +169,8 @@ void EditTableDialog::updateTableObject()
f->setAutoIncrement(item->checkState(kAutoIncrement) == Qt::Checked);
if(item->checkState(kPrimaryKey) == Qt::Checked)
pk.append(f);
+ f->setDefaultValue(item->text(kDefault));
+ f->setCheck(item->text(kCheck));
fields.append(f);
}
@@ -210,14 +214,10 @@ void EditTableDialog::itemChanged(QTreeWidgetItem *item, int column)
sqlb::FieldPtr field = m_table.fields().at(index);
switch(column)
{
- case kName:
- {
- field->setName(item->text(column));
- }
- break;
+ case kName: field->setName(item->text(column)); break;
case kType:
{
- // we don't know which combobox got update
+ // we don't know which combobox got the update
// so we have to update all at once
// see updateTypes() SLOT
}
@@ -246,6 +246,8 @@ void EditTableDialog::itemChanged(QTreeWidgetItem *item, int column)
field->setAutoIncrement(item->checkState(column) == Qt::Checked);
}
break;
+ case kDefault: field->setDefaultValue(item->text(column)); break;
+ case kCheck: field->setCheck(item->text(column)); break;
}
}
@@ -301,14 +303,12 @@ void EditTableDialog::removeField()
QString msg = tr("Are you sure you want to delete the field '%1'?\nAll data currently stored in this field will be lost.").arg(ui->treeWidget->currentItem()->text(0));
if(QMessageBox::warning(this, QApplication::applicationName(), msg, QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape) == QMessageBox::Yes)
{
- // TODO seems this doesn't work, db table is locked.
if(!pdb->dropColumn(curTable, ui->treeWidget->currentItem()->text(0)))
{
QMessageBox::warning(0, QApplication::applicationName(), pdb->lastErrorMessage);
} else {
//relayout
QString sTablesql = pdb->getTableSQL(curTable);
- qDebug() << sTablesql;
m_table = sqlb::Table::parseSQL(sTablesql);
populateFields();
}
diff --git a/src/EditTableDialog.h b/src/EditTableDialog.h
index 6a565ead..049bccb3 100644
--- a/src/EditTableDialog.h
+++ b/src/EditTableDialog.h
@@ -26,7 +26,9 @@ private:
kType = 1,
kNotNull = 2,
kPrimaryKey = 3,
- kAutoIncrement = 4
+ kAutoIncrement = 4,
+ kDefault = 5,
+ kCheck = 6
};
void updateColumnWidth();
diff --git a/src/EditTableDialog.ui b/src/EditTableDialog.ui
index 1ee94272..2e03dec8 100644
--- a/src/EditTableDialog.ui
+++ b/src/EditTableDialog.ui
@@ -125,17 +125,42 @@
Not null
+
+ Not null
+
+ PK
+
+
Primary key
+ AI
+
+
Autoincrement
+
+
+ Default
+
+
+ Default value
+
+
+
+
+ Check
+
+
+ Check constraint
+
+
-