Show and handle load and save errors

This commit is contained in:
mandlm 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,8 +85,16 @@ 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)
{
@ -194,8 +202,17 @@ 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;