[orca/new-settings] Some settings manager's code cleaning



commit 17872da0138a1fe26da4b73827d759df8a6607fc
Author: Juanje Ojeda <jojeda emergya es>
Date:   Fri Aug 6 11:38:13 2010 +0200

    Some settings manager's code cleaning

 src/orca/settings_manager.py |   34 ++++++++++++++--------------------
 1 files changed, 14 insertions(+), 20 deletions(-)
---
diff --git a/src/orca/settings_manager.py b/src/orca/settings_manager.py
index cdaabab..23f8cb3 100644
--- a/src/orca/settings_manager.py
+++ b/src/orca/settings_manager.py
@@ -27,16 +27,12 @@ __date__      = "$Date$"
 __copyright__ = "Copyright (c) 2010 Consorcio Fernando de los Rios."
 __license__   = "LGPL"
 
-import os
-import orca
-
-SettingsBackend = None
 
 class Singleton(object):
-     def __new__(cls, *args, **kwargs):
-         if '__instance' not in vars(cls):
-             cls.__instance = object.__new__(cls, *args, **kwargs)
-         return cls.__instance
+    def __new__(cls, *args, **kwargs):
+        if '__instance' not in vars(cls):
+            cls.__instance = object.__new__(cls, *args, **kwargs)
+        return cls.__instance
 
 class SettingsManager(Singleton):
     """Settings backend manager. This class manages orca user's settings
@@ -52,7 +48,8 @@ class SettingsManager(Singleton):
         If backend isn't defined then uses default backend, in this
         case gconf-backend"""
 
-        self.UserSettings = None
+        self.userSettings = None
+        self.backendModule = None
 
         if not backend:
             self.backend = self.DEFAULT_BACKEND
@@ -62,38 +59,35 @@ class SettingsManager(Singleton):
     def loadBackend(self):
         """Load specific backend for manage user settings"""
 
-        settingsBackend = 'from backends import %s as SettingsBackend' % self.backend
-        
-        exec settingsBackend
-
         try:
-            exec settingsBackend
+            self.backendModule = __import__('backends.%s' % self.backend, \
+                                         globals(), locals(), self.backend)
             print '\nimporting %s backend OK!' % self.backend
         except:
             print '\nUnable to load %s backend' % self.backend
 
-        globals()['SettingsBackend'] = SettingsBackend
-
     def loadSettings(self):
         """Load settings from active backend"""
 
-        return SettingsBackend.loadSettings()
+        return self.backendModule.loadSettings()
 
     def writeSettings(self, prefsDict, keyBindingsTreeModel=None,
                      pronunciationTreeModel=None):
         """Write user settings using active backend"""
  
-        return SettingsBackend.writePreferences(prefsDict, keyBindingsTreeModel, pronunciationTreeModel)
+        return self.backendModule.writePreferences(prefsDict, \
+                                                keyBindingsTreeModel, \
+                                                pronunciationTreeModel)
 
     def readPreferences(self):
         """Read current user preferences"""
 
-        return SettingsBackend.readPreferences()
+        return self.backendModule.readPreferences()
 
 
     def availableProfiles(self):
         """Get available profiles from active backend"""
 
-        return SettingsBackend.availableProfiles() 
+        return self.backendModule.availableProfiles() 
 
 



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