Changeset 11219:d24b63d1c4db in orange


Ignore:
Timestamp:
12/04/12 15:50:40 (17 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Removed 'path' property from 'Scheme' class and added it to SchemeEditWidget.

Location:
Orange/OrangeCanvas
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/canvasmain.py

    r11218 r11219  
    771771        scheme_doc_widget = self.current_document() 
    772772        scheme_doc_widget.setScheme(new_scheme) 
    773  
    774         self.add_recent_scheme(new_scheme) 
     773        scheme_doc_widget.setPath(filename) 
     774 
     775        self.add_recent_scheme(new_scheme.title, filename) 
    775776 
    776777    def new_scheme_from(self, filename): 
     
    846847        curr_scheme = document.scheme() 
    847848 
    848         if curr_scheme.path: 
    849             curr_scheme.save_to(open(curr_scheme.path, "wb")) 
     849        if document.path(): 
     850            curr_scheme.save_to(open(document.path(), "wb")) 
    850851            document.setModified(False) 
    851             self.add_recent_scheme(curr_scheme) 
     852            self.add_recent_scheme(curr_scheme.title, document.path()) 
    852853            return QDialog.Accepted 
    853854        else: 
     
    863864        curr_scheme = document.scheme() 
    864865 
    865         if curr_scheme.path: 
    866             start_dir = curr_scheme.path 
     866        if document.path(): 
     867            start_dir = document.path() 
    867868        else: 
    868869            if self.last_scheme_dir is not None: 
     
    903904                return QFileDialog.Rejected 
    904905 
    905             curr_scheme.path = filename 
     906            document.setPath(filename) 
    906907 
    907908            document.setModified(False) 
    908             self.add_recent_scheme(curr_scheme) 
     909            self.add_recent_scheme(curr_scheme.title, document.path()) 
    909910            return QFileDialog.Accepted 
    910911        else: 
     
    998999 
    9991000            new_scheme = self.new_scheme_from(unicode(selected.path())) 
    1000             # Clear the 'path' property (set by scheme.load_from), so 
    1001             # ctrl-s does not override the saved tutorial file in case the 
    1002             # tutorial file is writable. 
    1003             new_scheme.path = "" 
    1004             self.current_document().setScheme(new_scheme) 
     1001            document = self.current_document() 
     1002            document.setScheme(new_scheme) 
     1003 
    10051004        return status 
    10061005 
     
    11941193        dlg.exec_() 
    11951194 
    1196     def add_recent_scheme(self, scheme): 
    1197         """Add `scheme` to the list of recent schemes. 
    1198         """ 
    1199         if not scheme.path: 
    1200             # Scheme does not have an associated persistent path so we 
    1201             # can't do anything. 
     1195    def add_recent_scheme(self, title, path): 
     1196        """Add an entry (`title`, `path`) to the list of recent schemes. 
     1197        """ 
     1198        if not path: 
     1199            # No associated persistent path so we can't do anything. 
    12021200            return 
    1203  
    1204         title = scheme.title 
    1205         path = scheme.path 
    12061201 
    12071202        if title is None: 
  • Orange/OrangeCanvas/document/schemeedit.py

    r11208 r11219  
    6868    titleChanged = Signal(unicode) 
    6969 
     70    pathChanged = Signal(unicode) 
     71 
    7072    # Quick Menu triggers 
    7173    (NoTriggers, 
     
    8183        self.__registry = None 
    8284        self.__scheme = None 
     85        self.__path = u"" 
    8386        self.__quickMenuTriggers = SchemeEditWidget.SpaceKey | \ 
    8487                                   SchemeEditWidget.DoubleClicked 
     
    360363        return self.__undoStack 
    361364 
     365    def setPath(self, path): 
     366        """Set the path associated with the current scheme. 
     367 
     368    .. note:: Calling `setScheme` will invalidate the path (i.e. set it 
     369              to an empty string) 
     370 
     371        """ 
     372        if self.__path != path: 
     373            self.__path = unicode(path) 
     374            self.pathChanged.emit(self.__path) 
     375 
     376    def path(self): 
     377        """Return the path associated with the scene 
     378        """ 
     379        return self.__path 
     380 
    362381    def setScheme(self, scheme): 
    363382        if self.__scheme is not scheme: 
     
    368387 
    369388            self.__scheme = scheme 
     389 
     390            self.setPath("") 
    370391 
    371392            if self.__scheme: 
  • Orange/OrangeCanvas/scheme/scheme.py

    r11204 r11219  
    5454    title_changed = Signal(unicode) 
    5555    description_changed = Signal(unicode) 
    56     path_changed = Signal(unicode) 
    5756 
    5857    def __init__(self, parent=None, title=None, description=None): 
    5958        QObject.__init__(self, parent) 
    60  
    61         self.__path = "" 
    62         "Filename path associated with this schema (empty string by default)" 
    6359 
    6460        self.__title = title or "" 
     
    10399 
    104100    description = Property(unicode, fget=description, fset=set_description) 
    105  
    106     def set_path(self, path): 
    107         if self.__path != path: 
    108             self.__path = path 
    109             self.path_changed.emit(path) 
    110  
    111     def path(self): 
    112         return self.__path 
    113  
    114     path = Property(unicode, fget=path, fset=set_path) 
    115101 
    116102    def add_node(self, node): 
     
    418404        if isinstance(stream, basestring): 
    419405            stream = open(stream, "rb") 
    420         elif isinstance(stream, file): 
    421             self.path = stream.name 
    422406 
    423407        parse_scheme(self, stream) 
Note: See TracChangeset for help on using the changeset viewer.