# HG changeset patch # User Torsten # Date 1384688878 -3600 # Node ID efe3e288a20ca46388b192694e7544d7a9ad1f11 # Parent 0b71746689dc9e712214bc8652474ad10fd23fba check the creation of settings object for success before starting the gui * resource-manager.cc (do_set_settings): show error message and exit octave if settings file does not exist or is not writable diff -r 0b71746689dc -r efe3e288a20c libgui/src/resource-manager.cc --- a/libgui/src/resource-manager.cc Sun Nov 17 09:55:49 2013 +0100 +++ b/libgui/src/resource-manager.cc Sun Nov 17 12:47:58 2013 +0100 @@ -30,6 +30,7 @@ #include #include #include +#include #include "error.h" #include "file-ops.h" @@ -194,6 +195,20 @@ { delete settings; settings = new QSettings (file, QSettings::IniFormat); + + if (! (settings + && QFile::exists (settings->fileName ()) + && settings->isWritable () + && settings->status () == QSettings::NoError)) + { + QString msg = QString (QT_TR_NOOP ("The settings file\n%1\n" + "does not exist and can not be created.\n" + "Make sure you have read and write permissions to\n%2\n\n" + "Octave GUI must be closed now.")); + QMessageBox::critical (0, QString (QT_TR_NOOP ("Octave Critical Error")), + msg.arg (do_get_settings_file ()).arg (do_get_settings_directory ())); + exit (1); + } } bool