Ignore:
Timestamp:
07/02/13 15:26:02 (10 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Removed uses of WidgetsScheme.widget_settings in SchemeEditWidget.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/document/schemeedit.py

    r11614 r11615  
    1515from contextlib import nested 
    1616from urllib import urlencode 
     17from StringIO import StringIO 
    1718 
    1819from PyQt4.QtGui import ( 
     
    128129        self.__undoStack.cleanChanged[bool].connect(self.__onCleanChanged) 
    129130 
    130         # OWBaseWidget properties when set to clean state 
    131         self.__cleanSettings = [] 
     131        # Serialized scheme when  set to a clean state 
     132        self.__cleanSchemeString = None 
    132133 
    133134        self.__editFinishedMapper = QSignalMapper(self) 
     
    480481 
    481482        if not modified: 
    482             self.__cleanSettings = self.__scheme.widget_settings() 
     483            self.__cleanSchemeString = scheme_to_string(self.__scheme) 
    483484            self.__undoStack.setClean() 
    484485        else: 
    485             self.__cleanSettings = [] 
     486            self.__cleanSchemeString = None 
    486487 
    487488    modified = Property(bool, fget=isModified, fset=setModified) 
     
    489490    def isModifiedStrict(self): 
    490491        """ 
    491         Is the document modified. Run a strict check against all node 
    492         properties as they were at the time when the last call to 
    493         `setModified(True)` was made. 
    494  
    495         """ 
    496         settingsChanged = self.__cleanSettings != \ 
    497                           self.__scheme.widget_settings() 
     492        Is the document modified. 
     493 
     494        Run a strict check comparing to a serialized scheme string 
     495        the time when the last call to `setModified(True)` was made. 
     496 
     497        """ 
     498        schemeChanged = self.__cleanSchemeString != \ 
     499                        scheme_to_string(self.__scheme) 
    498500 
    499501        log.debug("Modified strict check (modified flag: %s, " 
    500                   "undo stack clean: %s, properties: %s)", 
     502                  "undo stack clean: %s, scheme: %s)", 
    501503                  self.__modified, 
    502504                  self.__undoStack.isClean(), 
    503                   settingsChanged) 
    504  
    505         return self.isModified() or settingsChanged 
     505                  schemeChanged) 
     506 
     507        return self.isModified() or schemeChanged 
    506508 
    507509    def setQuickMenuTriggers(self, triggers): 
     
    598600                self.__scheme.title_changed.connect(self.titleChanged) 
    599601                self.titleChanged.emit(scheme.title) 
    600                 self.__cleanSettings = scheme.widget_settings() 
     602                self.__cleanSchemeString = scheme_to_string(scheme) 
    601603            else: 
    602                 self.__cleanSettings = [] 
     604                self.__cleanSchemeString = None 
    603605 
    604606            self.__teardownScene(self.__scene) 
     
    15241526 
    15251527 
     1528def scheme_to_string(scheme): 
     1529    stream = StringIO() 
     1530    scheme.save_to(stream, pretty=False, pickle_fallback=True) 
     1531    return stream.getvalue() 
     1532 
     1533 
    15261534def geometry_from_annotation_item(item): 
    15271535    if isinstance(item, items.ArrowAnnotation): 
Note: See TracChangeset for help on using the changeset viewer.