changeset 17943:efe3e288a20c

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
author Torsten <ttl@justmail.de>
date Sun, 17 Nov 2013 12:47:58 +0100
parents 0b71746689dc
children 1ed269bdea58
files libgui/src/resource-manager.cc
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 <QDir>
 #include <QNetworkProxy>
 #include <QLibraryInfo>
+#include <QMessageBox>
 
 #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