diff --git a/apps/launcher/graphicspage.cpp b/apps/launcher/graphicspage.cpp
index ffa4d5d598..a3572960d1 100644
--- a/apps/launcher/graphicspage.cpp
+++ b/apps/launcher/graphicspage.cpp
@@ -183,7 +183,7 @@ void GraphicsPage::setupOgre()
qCritical("Error creating Ogre::Root, the error reported was:\n %s", qPrintable(ogreError));
- std::exit(1);
+ QApplication::exit(1);
}
// Get the available renderers and put them in the combobox
@@ -216,7 +216,7 @@ void GraphicsPage::setupOgre()
Please make sure the plugins.cfg file exists and contains a valid rendering plugin.
"));
msgBox.exec();
- std::exit(1);
+ QApplication::exit(1);
}
// Now fill the GUI elements
@@ -388,7 +388,7 @@ void GraphicsPage::writeConfig()
if (!ogreError.isEmpty()) {
QMessageBox msgBox;
- msgBox.setWindowTitle("Error validating configuration");
+ msgBox.setWindowTitle("Error validating Ogre configuration");
msgBox.setIcon(QMessageBox::Critical);
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.setText(tr("
A problem occured while validating the graphics options
\
@@ -401,11 +401,33 @@ void GraphicsPage::writeConfig()
qCritical("Error validating configuration");
- std::exit(1);
+ QApplication::exit(1);
}
// Write the settings to the config file
- mOgre->saveConfig();
+
+
+ try
+ {
+ mOgre->saveConfig();
+ }
+ catch(Ogre::Exception &ex)
+ {
+ QString ogreError = QString::fromStdString(ex.getFullDescription().c_str());
+ QMessageBox msgBox;
+ msgBox.setWindowTitle("Error writing Ogre configuration file");
+ msgBox.setIcon(QMessageBox::Critical);
+ msgBox.setStandardButtons(QMessageBox::Ok);
+ msgBox.setText(tr("
Could not write the graphics configuration
\
+ Please make sure you have the right permissions and try again.
\
+ Press \"Show Details...\" for more information.
"));
+ msgBox.setDetailedText(ogreError);
+ msgBox.exec();
+
+ qCritical("Error saving Ogre configuration, the error reported was:\n %s", qPrintable(ogreError));
+
+ QApplication::exit(1);
+ }
}
diff --git a/apps/launcher/maindialog.cpp b/apps/launcher/maindialog.cpp
index 31313e7a39..4ec8b309cc 100644
--- a/apps/launcher/maindialog.cpp
+++ b/apps/launcher/maindialog.cpp
@@ -340,7 +340,7 @@ void MainDialog::writeConfig()
Please make sure you have the right permissions and try again.
").arg(file.fileName()));
msgBox.exec();
- std::exit(1);
+ QApplication::exit(1);
}
QTextStream in(&file);
@@ -366,7 +366,7 @@ void MainDialog::writeConfig()
Please make sure you have the right permissions and try again.
").arg(file.fileName()));
msgBox.exec();
- std::exit(1);;
+ QApplication::exit(1);
}
file.write(buffer);