Show and handle load and save errors

This commit is contained in:
Michael Mandl 2019-01-29 20:55:16 +01:00
parent 9e6b957f92
commit 20901898a8
2 changed files with 21 additions and 4 deletions

View file

@ -46,7 +46,7 @@ void DataModel::write(const QString &filename) const
QFile outFile(filename);
if (!outFile.open(QIODevice::WriteOnly))
{
return;
throw std::runtime_error("open failed");
}
dataModel.SerializeToFileDescriptor(outFile.handle());
@ -57,7 +57,7 @@ void DataModel::read(const QString &filename)
QFile inFile(filename);
if (!inFile.open(QIODevice::ReadOnly))
{
return;
throw std::runtime_error("open failed");
}
ESGRAF48::DataModel dataModel;

View file

@ -85,7 +85,15 @@ void MainWindow::openFile()
return;
}
try
{
openFile(filename);
}
catch (std::exception &e)
{
QString errorMessage = QString("Error loading \"") + filename + "\": " + e.what();
QMessageBox::critical(this, "Error", errorMessage);
}
}
void MainWindow::openFile(const QString &filename)
@ -195,7 +203,16 @@ void MainWindow::closeEvent(QCloseEvent *event)
void MainWindow::saveFile(const QString &filename)
{
try
{
m_dataModel.write(filename);
}
catch (std::exception &e)
{
QString errorMessage = QString("Error saving \"") + filename + "\": " + e.what();
QMessageBox::critical(this, "Error", errorMessage);
return;
}
qDebug() << "Wrote" << filename;