--- nfo/projects/netfraggle/bin/fraggleCtlPreferences.py 2004/08/29 22:52:40 1.5 +++ nfo/projects/netfraggle/bin/fraggleCtlPreferences.py 2004/08/30 12:50:47 1.6 @@ -12,6 +12,8 @@ self.fraggleXML = fraggleParserXML.create(self) def __init__(self,parent): + self.configList = {} + self.prefsfile = os.path.join(self.getDefaultDir(), 'prefs.xml') self.__init_fraggle_xml__() self.restoreProfiles() @@ -22,29 +24,24 @@ self.configList = {'username': username,'password': password,'url': url,'retrieval': retrieval} def getConfig(self): + if not self.configList: + self.loadConfig(self.prefsfile) return self.configList - def loadConfig(self,inputLocation): self.configList = self.fraggleXML.unmarshalXML(inputLocation) - def saveConfig(self): - engine = FraggleEngine() - - prefsfile = os.path.join(engine.getDefaultDir(), 'prefs.xml') - #self.fraggleXML.marshalXML(self.profileDictionary, prefsfile) - self.fraggleXML.marshalXML(self.configList, prefsfile) + #self.fraggleXML.marshalXML(self.profileDictionary, self.prefsfile) + self.fraggleXML.marshalXML(self.configList, self.prefsfile) def saveProfiles(self): - engine = FraggleEngine() - profilesTemp = os.path.join(engine.getDefaultDir(), 'profiles.xml') + profilesTemp = os.path.join(self.getDefaultDir(), 'profiles.xml') self.fraggleXML.marshalXML(self.profileDictionary, profilesTemp) #print self.profileDictionary def restoreProfiles(self): - engine = FraggleEngine() - profiles = os.path.join(engine.getDefaultDir(), 'profiles.xml') + profiles = os.path.join(self.getDefaultDir(), 'profiles.xml') self.profileDictionary = self.fraggleXML.unmarshalXML(profiles) #print self.profileDictionary @@ -94,4 +91,25 @@ self.profileDictionary.pop(self.profileDictionary.index(profileId)) except IndexError: pass + + # from Pears: http://project5.freezope.org/pears/ + def getDefaultDir(self): + """Gets location of default dir and creates it + if necessary. ($HOME/.pears/)""" + try: + import pearsdebug + savedir = pearsdebug.savedir + except: + dir = '.netfraggle' + savedir = os.path.expanduser(os.path.join('~', dir)) + if len(savedir)<=len("c:\\/" + dir): + # problem that might occur on Win2k (no $HOME environment variable) + temp = os.path.join(os.path.expandvars('$USERPROFILE'), dir) + if temp > len("c:\\/" + dir): + savedir = temp + # create dir if it doesn't exist + if not os.path.exists(savedir): + os.makedirs(savedir) + return savedir + \ No newline at end of file