Changeset 11458:2c6a670c84c3 in orange


Ignore:
Timestamp:
04/17/13 11:46:49 (12 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Fixed saving/loading of widget settings when the directory path contains non ascii characters.

(fixes #1294)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/OWBaseWidget.py

    r11296 r11458  
    460460### 
    461461                settings[contextHandler.localContextName+"Version"] = (contextStructureVersion, contextHandler.contextDataVersion) 
    462              
     462 
    463463        return settings 
    464464 
     465    def getDefaultSettingsFilename(self): 
     466        fs_encoding = sys.getfilesystemencoding() 
     467        basename = self.captionTitle + ".ini" 
     468        filename = os.path.join( 
     469            self.widgetSettingsDir,  # is assumed to be a str in FS encoding 
     470            basename.encode(fs_encoding)) 
     471        return filename 
    465472 
    466473    def getSettingsFile(self, file): 
    467         if file==None: 
    468             file = os.path.join(self.widgetSettingsDir, self.captionTitle + ".ini") 
     474        if file is None: 
     475            file = self.getDefaultSettingsFilename() 
     476 
    469477            if not os.path.exists(file): 
    470478                try: 
     
    473481                    f.close() 
    474482                except IOError: 
    475                     return  
     483                    return 
    476484        if isinstance(file, basestring): 
    477485            if os.path.exists(file): 
     
    523531        settings = self.getSettings(globalContexts=True) 
    524532        if settings: 
    525             if file==None: 
    526                 file = os.path.join(self.widgetSettingsDir, self.captionTitle + ".ini") 
     533            if file is None: 
     534                file = self.getDefaultSettingsFilename() 
     535 
    527536            if isinstance(file, basestring): 
    528537                file = open(file, "w") 
Note: See TracChangeset for help on using the changeset viewer.