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);