Changeset 2936

Show
Ignore:
Timestamp:
03/19/07 14:11:57 (2 years ago)
Author:
ed
Message:

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.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/dabo/dObject.py

    r2914 r2936  
    325325            ret = self._preferenceManager 
    326326        except AttributeError: 
    327             ret = self._preferenceManager = dPref(key=self.BasePrefKey) 
     327            ret = None 
     328            if self.Application is not self: 
     329                try: 
     330                    ret = self._preferenceManager = self.Application.PreferenceManager 
     331                except AttributeError: pass 
     332            if ret is None: 
     333                ret = self._preferenceManager = dPref(key=self.BasePrefKey) 
    328334        return ret 
    329335 
  • trunk/dabo/dUserSettingProvider.py

    r2548 r2936  
    11import dabo 
    2 from dabo.dPref import dPref 
     2from dabo.dObject import dObject 
    33from dabo.dLocalize import _ 
    44 
    55 
    6 class dUserSettingProvider(dPref): 
    7     def __init__(self, *args, **kwargs): 
    8         kwargs["key"] = dabo.dAppRef.BasePrefKey 
    9         super(dUserSettingProvider, self).__init__(*args, **kwargs) 
    10          
    11          
     6class dUserSettingProvider(dObject): 
    127    def getUserSettingKeys(self, spec): 
    138        """Return a list of all keys underneath <spec>. 
     
    2116        The return value would be ["pkm", "egl"] 
    2217        """ 
    23         return self.getPrefKeys(spec.lower()) 
     18        return self.PreferenceManager.getPrefKeys(spec.lower()) 
    2419 
    2520 
     
    2823        corresponds to the preference key passed. 
    2924        """ 
    30         prf = self 
     25        prf = self.PreferenceManager 
    3126        parsedItem = item.lower().split(".") 
    3227        while len(parsedItem) > 1: 
     
    4237    def setUserSetting(self, item, val): 
    4338        """Persist a value to the user settings file.""" 
    44         prf = self 
     39        prf = self.PreferenceManager 
    4540        parsedItem = item.lower().split(".") 
    4641        while len(parsedItem) > 1: 
     
    5853    def deleteUserSetting(self, item): 
    5954        """Removes the specified item from the settings file.""" 
    60         self.deletePref(item.lower(), False) 
     55        self.PreferenceManager.deletePref(item.lower(), False) 
    6156 
    6257 
     
    6661        on key matching. 
    6762        """ 
    68         self.deletePref(spec.lower(), True) 
     63        self.PreferenceManager.deletePref(spec.lower(), True) 
    6964