From 606e36acf382be4a4b5fdef557fda324abf19fb2 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Mon, 20 Jul 2015 21:29:36 +0200 Subject: [PATCH] Detect and display more errors when writing databases. --- src/gui/DatabaseTabWidget.cpp | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index 8964d98c..faf16f59 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -295,24 +295,24 @@ bool DatabaseTabWidget::saveDatabase(Database* db) DatabaseManagerStruct& dbStruct = m_dbList[db]; if (dbStruct.saveToFilename) { - bool result = false; - QSaveFile saveFile(dbStruct.filePath); if (saveFile.open(QIODevice::WriteOnly)) { m_writer.writeDatabase(&saveFile, db); - result = saveFile.commit(); + if (m_writer.hasError()) { + MessageBox::critical(this, tr("Error"), tr("Writing the database failed.") + "\n\n" + + m_writer.errorString()); + return false; + } + if (!saveFile.commit()) { + MessageBox::critical(this, tr("Error"), tr("Writing the database failed.") + "\n\n" + + saveFile.errorString()); + return false; + } } - if (result) { - dbStruct.modified = false; - updateTabName(db); - return true; - } - else { - MessageBox::critical(this, tr("Error"), tr("Writing the database failed.") + "\n\n" - + saveFile.errorString()); - return false; - } + dbStruct.modified = false; + updateTabName(db); + return true; } else { return saveDatabaseAs(db); @@ -370,6 +370,11 @@ bool DatabaseTabWidget::saveDatabaseAs(Database* db) } m_writer.writeDatabase(&saveFile, db); + if (m_writer.hasError()) { + MessageBox::critical(this, tr("Error"), tr("Writing the database failed.") + "\n\n" + + m_writer.errorString()); + return false; + } if (!saveFile.commit()) { MessageBox::critical(this, tr("Error"), tr("Writing the database failed.") + "\n\n" + saveFile.errorString());