Show message box when editing a table column fails

When editing a column of an existing table, this process might fail for
all sorts of reasons. Instead of printing an error message to stdout
this commit changes it to show a message box, so the user knows the
editing failed.
This commit is contained in:
Martin Kleusberg
2017-01-04 19:21:32 +01:00
parent a40fe0b0ed
commit 63ba2c5059
2 changed files with 4 additions and 8 deletions

View File

@@ -449,7 +449,10 @@ void EditTableDialog::itemChanged(QTreeWidgetItem *item, int column)
}
if(callRenameColumn)
pdb.renameColumn(m_table, oldFieldName, field);
{
if(!pdb.renameColumn(m_table, oldFieldName, field))
QMessageBox::warning(this, qApp->applicationName(), tr("Modifying this column failed. Error returned from database:\n%1").arg(pdb.lastErrorMessage));
}
}
checkInput();

View File

@@ -990,7 +990,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(tableSql.isEmpty())
{
lastErrorMessage = tr("renameColumn: cannot find table %1.").arg(table.name());
qWarning() << lastErrorMessage;
return false;
}
@@ -1001,7 +1000,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(oldSchema.findField(name) == -1)
{
lastErrorMessage = tr("renameColumn: cannot find column %1.").arg(name);
qWarning() << lastErrorMessage;
return false;
}
@@ -1009,7 +1007,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(!setSavepoint("sqlitebrowser_rename_column"))
{
lastErrorMessage = tr("renameColumn: creating savepoint failed. DB says: %1").arg(lastErrorMessage);
qWarning() << lastErrorMessage;
return false;
}
@@ -1055,7 +1052,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(!executeSQL(newSchema.sql(), true, true))
{
QString error(tr("renameColumn: creating new table failed. DB says: %1").arg(lastErrorMessage));
qWarning() << error;
revertToSavepoint("sqlitebrowser_rename_column");
lastErrorMessage = error;
return false;
@@ -1065,7 +1061,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(!executeSQL(QString("INSERT INTO sqlitebrowser_rename_column_new_table SELECT %1 FROM %2;").arg(select_cols).arg(sqlb::escapeIdentifier(table.name()))))
{
QString error(tr("renameColumn: copying data to new table failed. DB says:\n%1").arg(lastErrorMessage));
qWarning() << error;
revertToSavepoint("sqlitebrowser_rename_column");
lastErrorMessage = error;
return false;
@@ -1092,7 +1087,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(!executeSQL(QString("DROP TABLE %1;").arg(sqlb::escapeIdentifier(table.name())), true, true))
{
QString error(tr("renameColumn: deleting old table failed. DB says: %1").arg(lastErrorMessage));
qWarning() << error;
revertToSavepoint("sqlitebrowser_rename_column");
lastErrorMessage = error;
return false;
@@ -1121,7 +1115,6 @@ bool DBBrowserDB::renameColumn(const sqlb::Table& table, const QString& name, sq
if(!releaseSavepoint("sqlitebrowser_rename_column"))
{
lastErrorMessage = tr("renameColumn: releasing savepoint failed. DB says: %1").arg(lastErrorMessage);
qWarning() << lastErrorMessage;
return false;
}