[orca/new-settings] Write the default profile at the first start so things doesn't crash try to load an empty gconf prof



commit 2c9608236e7569207aa733bab5326cc3c4300156
Author: Juanje Ojeda <jojeda emergya es>
Date:   Mon Oct 18 22:09:43 2010 +0200

    Write the default profile at the first start so things doesn't crash try to load an empty gconf profile.
    Added method for check is the backend is the default one

 src/orca/backends/gconf_backend.py |    8 +++++++-
 src/orca/orca.py                   |    3 ++-
 src/orca/orca_gui_prefs.py         |    2 +-
 src/orca/settings_manager.py       |    8 ++++++++
 4 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/src/orca/backends/gconf_backend.py b/src/orca/backends/gconf_backend.py
index 9d4870c..07ce6a4 100644
--- a/src/orca/backends/gconf_backend.py
+++ b/src/orca/backends/gconf_backend.py
@@ -47,7 +47,9 @@ class GConfKeysDict(dict):
 
     def __setitem__(self, key, val):
         if not type(val) in self.VALID_KEY_TYPES:
-            print "Invalid type %s for gconf key: %s (val: %s)" % (type(val), key, str(val))
+            print "Invalid type %s for gconf key: %s (val: %s)" % (type(val),
+                                                                   key,
+                                                                   str(val))
             raise TypeError
         else:
             dict.__setitem__(self, key, val)
@@ -103,6 +105,10 @@ class OrcaPrefs():
         if prefsDict:
             self.options = self.prefsDict
 
+        if not self._client.dir_exists(self.__app_key):
+            self.prefsDict = self.options
+            self.writePreferences()
+
     def _createDir(self, dirname):
         """Creates the given directory if it doesn't already exist.
         """
diff --git a/src/orca/orca.py b/src/orca/orca.py
index c2f9519..114e67f 100644
--- a/src/orca/orca.py
+++ b/src/orca/orca.py
@@ -2234,7 +2234,8 @@ def main():
     #
     if setupRequested and (not bypassSetup) and showGUI:
         showPreferencesGUI()
-    elif (not _userSettings) and (not bypassSetup):
+    elif (not _userSettings) and (not bypassSetup) or \
+         (not _settingsManager.isClassic()) and (not bypassSetup):
         if desktopRunning:
             if not os.path.exists(userprefs):
                 # Hack to work around b.g.o. 601657.
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index e6e08da..c5b8277 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -145,7 +145,7 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         self.prefsDict = prefsDict
         self.enableLiveUpdating = settings.enableMagLiveUpdating
 
-        self._profilesCapable = _settingsManager.DEFAULT_BACKEND != 'classic'
+        self._profilesCapable = not _settingsManager.isClassic()
 
         # Initialize variables to None to keep pylint happy.
         #
diff --git a/src/orca/settings_manager.py b/src/orca/settings_manager.py
index 23f8cb3..ca3268d 100644
--- a/src/orca/settings_manager.py
+++ b/src/orca/settings_manager.py
@@ -56,6 +56,14 @@ class SettingsManager(Singleton):
         else:
             self.backend = backend
 
+    def isClassic(self):
+        """Is the backend the classic one?
+        If the current backend is the classic one it will return True"""
+        if self.backend is 'classic':
+            return True
+        else:
+            return False
+
     def loadBackend(self):
         """Load specific backend for manage user settings"""
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]