Show and handle load and save errors
This commit is contained in:
parent
9e6b957f92
commit
20901898a8
@ -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;
|
||||
|
@ -85,7 +85,15 @@ void MainWindow::openFile()
|
||||
return;
|
||||
}
|
||||
|
||||
openFile(filename);
|
||||
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)
|
||||
{
|
||||
m_dataModel.write(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;
|
||||
|
||||
|
Reference in New Issue
Block a user