dabo Commit
Revision 2936
Date: 2007-03-19 14:11:57 -0700 (Mon, 19 Mar 2007)
Author: Ed
Trac: http://svn.dabodev.com/trac/dabo/changeset/2936

Changed:
U   trunk/dabo/dObject.py
U   trunk/dabo/dUserSettingProvider.py

Log:
Finally got around to fixing the discrepancy between the PreferenceManager and 
the UserSettingProvider objects. Previously, setting a preference and a user 
setting were independent, even though they accessed the same data.

This fixes the old Tracker Issue #0298.


Diff:
Modified: trunk/dabo/dObject.py
===================================================================
--- trunk/dabo/dObject.py       2007-03-19 19:47:01 UTC (rev 2935)
+++ trunk/dabo/dObject.py       2007-03-19 21:11:57 UTC (rev 2936)
@@ -324,7 +324,13 @@
                try:
                        ret = self._preferenceManager
                except AttributeError:
-                       ret = self._preferenceManager = 
dPref(key=self.BasePrefKey)
+                       ret = None
+                       if self.Application is not self:
+                               try:
+                                       ret = self._preferenceManager = 
self.Application.PreferenceManager
+                               except AttributeError: pass
+                       if ret is None:
+                               ret = self._preferenceManager = 
dPref(key=self.BasePrefKey)
                return ret
 
        def _setPreferenceManager(self, val):

Modified: trunk/dabo/dUserSettingProvider.py
===================================================================
--- trunk/dabo/dUserSettingProvider.py  2007-03-19 19:47:01 UTC (rev 2935)
+++ trunk/dabo/dUserSettingProvider.py  2007-03-19 21:11:57 UTC (rev 2936)
@@ -1,14 +1,9 @@
 import dabo
-from dabo.dPref import dPref
+from dabo.dObject import dObject
 from dabo.dLocalize import _
 
 
-class dUserSettingProvider(dPref):
-       def __init__(self, *args, **kwargs):
-               kwargs["key"] = dabo.dAppRef.BasePrefKey
-               super(dUserSettingProvider, self).__init__(*args, **kwargs)
-               
-               
+class dUserSettingProvider(dObject):
        def getUserSettingKeys(self, spec):
                """Return a list of all keys underneath <spec>.
                
@@ -20,14 +15,14 @@
                        
                The return value would be ["pkm", "egl"]
                """
-               return self.getPrefKeys(spec.lower())
+               return self.PreferenceManager.getPrefKeys(spec.lower())
 
 
        def getUserSetting(self, item, default=None):
                """ Return the value of the user settings table that 
                corresponds to the preference key passed.
                """
-               prf = self
+               prf = self.PreferenceManager
                parsedItem = item.lower().split(".")
                while len(parsedItem) > 1:
                        prf = prf.__getattr__(parsedItem.pop(0))
@@ -41,7 +36,7 @@
 
        def setUserSetting(self, item, val):
                """Persist a value to the user settings file."""
-               prf = self
+               prf = self.PreferenceManager
                parsedItem = item.lower().split(".")
                while len(parsedItem) > 1:
                        prf = prf.__getattr__(parsedItem.pop(0))
@@ -57,7 +52,7 @@
 
        def deleteUserSetting(self, item):
                """Removes the specified item from the settings file."""
-               self.deletePref(item.lower(), False)
+               self.PreferenceManager.deletePref(item.lower(), False)
 
 
        def deleteAllUserSettings(self, spec):
@@ -65,5 +60,5 @@
                See the docs for getUserSettingKeys() for an explanation
                on key matching.
                """
-               self.deletePref(spec.lower(), True)
+               self.PreferenceManager.deletePref(spec.lower(), True)
 




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to